我在Mac OS X中一個makefile,併爲最終的編譯最後一個命令行是:靜態庫
gcc count_words.o lexer.o -lfl -o count_words
但它響應:
ld: library not found for -lfl
collect2: ld returned 1 exit status
我發現,庫libfl.a是在/ opt/local/lib目錄/和修改命令行改爲:
gcc count_words.o lexer.o -L/opt/local/lib/ -lfl -o count_words
它完美的作品,但我讀過的時候可以看到形式-l的先決條件,GNU使得搜索形式爲libNAME.so的文件;如果找不到匹配項,則搜索libNAME.a。這裏make應該找到/opt/local/lib/libfl.a並且繼續最後一個動作,鏈接,但是這不會發生。
我嘗試使用LD_LIBRARY_PATH,然後意識到,因爲我在Mac上工作,我必須使用DYLD_LIBRARY_PATH,我導出指向/ opt/local/lib的變量,並嘗試再次運行makefile,無法正常工作。發現另一個名爲DYLD_FALLBACK_LIBRARY_PATH的環境變量,導出,沒有工作。
我該怎麼辦?