我在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的环境变量,导出,没有工作。
我该怎么办?