<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    void

    makefile的選項CFLAGS、CPPFLAGS、LDFLAGS和LIBS的區別

    LDFLAGS是選項,LIBS是要鏈接的庫。都是喂給ld的,只不過一個是告訴ld怎么吃,一個是告訴ld要吃什么。

    網上不難搜索到上面這段話。不過“告訴ld怎么吃”是什么意思呢?

    看看如下選項:

    LDFLAGS = -L/var/xxx/lib -L/opt/mysql/lib

    LIBS = -lmysqlclient -liconv

    這就明白了。LDFLAGS告訴鏈接器從哪里尋找庫文件,LIBS告訴鏈接器要鏈接哪些庫文件。不過使用時鏈接階段這兩個參數都會加上,所以你即使將這兩個的值互換,也沒有問題。


    說到這里,進一步說說LDFLAGS指定-L雖然能讓鏈接器找到庫進行鏈接,但是運行時鏈接器卻找不到這個庫,如果要讓軟件運行時庫文件的路徑也得到擴展,那么我們需要增加這兩個庫給"-Wl,R"

    LDFLAGS = -L/var/xxx/lib -L/opt/mysql/lib -Wl,R/var/xxx/lib -Wl,R/opt/mysql/lib

    如 果在執行./configure以前設置環境變量export LDFLAGS="-L/var/xxx/lib -L/opt/mysql/lib -Wl,R/var/xxx/lib -Wl,R/opt/mysql/lib" ,注意設置環境變量等號兩邊不可以有空格,而且要加上引號哦(shell的用法)。那么執行configure以后,Makefile將會設置這個選項, 鏈接時會有這個參數,編譯出來的可執行程序的庫文件搜索路徑就得到擴展了。


    ------------------------------------------------------------------------------------------------------------------------


    PS:-Wl,R在GraphicsMagick環境下,用為-R, 也就是LDFLAGS = -L/var/xxx/lib -R/var/xxx/lib



     

    CFLAGS 或 CPPFLAGS的用法
    CPPFLAGS='-I/usr/local/libjpeg/include -I/usr/local/libpng/include'

     

    posted on 2012-05-07 22:46 void 閱讀(24753) 評論(0)  編輯  收藏 所屬分類: Linux

    主站蜘蛛池模板: 国产91精品一区二区麻豆亚洲 | 亚洲偷自精品三十六区| 成人黄软件网18免费下载成人黄18免费视频 | 日韩黄色免费观看| 一级一片免费视频播放| 亚洲AV色香蕉一区二区| 好吊妞在线成人免费| 久久久精品视频免费观看 | 国内精品99亚洲免费高清| 亚洲大片免费观看| 免费观看国产小粉嫩喷水| 黄色永久免费网站| 国产精品亚洲五月天高清| 久久久久亚洲精品美女| 暖暖免费高清日本一区二区三区| 一个人免费视频观看在线www| 中文字幕亚洲综合久久综合| 亚洲伊人久久精品影院| 无码国产精品久久一区免费| 国产成人无码免费看片软件 | 亚洲欧洲无码AV不卡在线 | 搜日本一区二区三区免费高清视频 | 亚洲AV无码AV男人的天堂| 国产男女性潮高清免费网站| 无码一区二区三区免费| 特级av毛片免费观看| 亚洲成aⅴ人片在线观| 亚洲精品成人片在线播放| 日韩免费观看一级毛片看看| 51在线视频免费观看视频| 一级美国片免费看| 亚洲人成电影网站免费| 亚洲国产精品一区| 国产亚洲精品线观看动态图| 日韩精品免费一区二区三区| 国产人成免费视频网站| 久久aⅴ免费观看| 国产精品极品美女自在线观看免费 | 亚洲国产成人久久精品软件| 亚洲精品在线免费观看| 国产亚洲精品va在线|