CFLAGS 和 LDFLAGS 与 CPATH 和 LIBRARY_PATH 对比

问题描述 投票:0回答:1

在这个帖子中

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 = whatever
时,我是否会覆盖以前可能由开发人员自己制定的
LDFLAGS
定义?语法不应该是类似
./configure LDFLAGS+=/myPath
吗?

compilation linker cflags ldflags
1个回答
4
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.