在这个帖子中
有人说
CFLAGS
和 LDFLAGS
不适用于每个配置脚本。为什么?我想对此有更多解释,而不仅仅是声明;)在什么情况下该方法有效,在什么情况下无效?是什么原因造成的?
他(已接受的答案)还提到您应该使用
CPATH
和 LIBRARY_PATH
代替。
CFLAGS
和 CPATH
和有什么不一样?
同样,LDFLAGS
和LIBRARY_PATH
之间有什么区别?
最后一个问题:当我使用
LDFLAGS = whatever
时,我是否会覆盖以前可能由开发人员自己制定的 LDFLAGS
定义?语法不应该是类似 ./configure LDFLAGS+=/myPath
吗?
CFLAGS
/LDFLAGS
由 ./configure
使用,CPATH
/LIBRARY_PATH
由 GCC/MinGW 编译器/链接器使用。如果 ./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
。