CFLAGS和LDFLAGS vs CPATH和LIBRARY_PATH

时间:2015-08-05 02:13:34

标签: ldflags cflags

在这个帖子中

https://unix.stackexchange.com/questions/149359/what-is-the-correct-syntax-to-add-cflags-and-ldflags-to-configure

有人说CFLAGS和LDFLAGS不适用于每个配置脚本。为什么?我想对此有更多的解释,而不仅仅是声明;)在哪种情况下工作,哪种情况不适用?原因是什么?

他(接受的答案)也提到你应该使用CPATH和LIBRARY_PATH。 CFLAGS和CPATH有什么区别? 同样,LDFLAGS和LIBRARY_PATH之间有什么区别?

最后一个问题:当我使用LDFLAGS =无论如何时,我是否不能覆盖开发者本人可能已经做出的以前的LDFLAGS定义?语法不应该像./configure LDFLAGS + = / myPath?

1 个答案:

答案 0 :(得分:2)

GCC / MinGW编译器/链接器使用的CFLAGSLDFLAGS / ./configure使用的{p> CPATH / LIBRARY_PATH。如果./configure写好,它首先从环境中获取CFLAGS / LDFLAGS,然后向其添加任何路径并调用编译器/链接器。在这种情况下,您可以使用

CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib" ./configure

现代./configure可以接受CFLAGS / LDFLAGS作为参数

./configure CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"

但如果./configure不好或旧,只有CPATH / LIBRARY_PATH可以提供帮助

CPATH=/usr/local/include LIBRARY_PATH=/usr/local/lib ./configure
CPATH=/usr/local/include LIBRARY_PATH=/usr/local/lib make

Microsoft Visual C ++编译器CPATH / LIBRARY_PATH的替代值为INCLUDE / LIB