ld:警告:找不到目录

时间:2013-06-12 07:58:33

标签: macos makefile ld

我有一个Makefile,我在其中为链接器设置了一个库路径。因为代码依赖于存储在不同目录中的库,具体取决于它们的安装方式(fink,macports,source,...),所以我在库路径中包含了所有可能的位置。 当我在linux上编译时,ld并不关心库路径中的目录是否存在,但是在OS X上,ld给出了找不到选项' -L ...&#39的ld:warning:目录;如果一个或多个目录不存在则发出警告。

我想知道在设置路径之前是否有办法测试Makefile中是否存在目录?目前,我在Makefile中有这个

LIBS    = -L${PREFIX}/lib \
          -L${HOME}/lib \
          -L/opt/local/lib \
          -L/sw/lib

如果这是一个微不足道的问题,我道歉,但我对Make或Makefiles并不是特别擅长。

1 个答案:

答案 0 :(得分:1)

您可以使用以下方式逐个构建LIBS

ifneq (,$(wildcard ${PREFIX}/lib/.))
    LIBS += -L${PREFIX}/lib
endif

ifneq (,$(wildcard ${HOME}/lib/.))
    LIBS += -L${HOME}/lib
endif