2

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

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

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

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

4

1 回答 1

1

您可以LIBS使用:

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

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

等等

于 2013-06-12T08:13:47.667 回答