2

在这个线程中

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 吗?

4

1 回答 1

3

CFLAGS/LDFLAGS./configure, CPATH/LIBRARY_PATH由 GCC/MinGW 编译器/链接器使用。如果./configure写得好,它首先从环境中获取CFLAGS/ LDFLAGS,然后将任何路径附加到它并调用编译器/链接器。在这种情况下,您可以使用

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

Modern./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_PATHINCLUDELIB

于 2016-01-29T03:49:24.100 回答