如何为configure脚本指定包含目录

24

我在工作中使用的Linux系统上,软件包已经很老了,而且没有root访问权限。我正在使用--prefix=[家目录下的某个位置]从源代码编译我需要的软件包。我的问题是我无法找到如何让configure命令在特定目录中查找头文件。源代码是cpp。我尝试了一些与g++相关的环境变量和选项,以及搜索和谷歌,但都没有成功。有人可以帮助我解决这个问题吗?

4个回答

30

通常你可以在CXXFLAGS中传递额外的编译器标志。对于gcc,您可以使用-I/some/dir指定更多的包含目录,例如:

$ ./configure CXXFLAGS="-I/some/dir/"

其中 /some/dir/ 包含您的头文件。


8
CXXFLAGS是给C++编译器用的,所以CFLAGS是给C语言编译器用的。 - thor

19

通常的做法是使用 --with-<feature>=<header目录>


<feature>应该填什么? - Chara
1
@Chara:无论--help告诉你什么,它就是什么。 - Ignacio Vazquez-Abrams

12
CPPFLAGS = C Preprocessor Flags, these flags will be used for C and C++ compilation.

CFLAGS = C Flags, these flags will be used when compiling C.

CXXFLAGS = C++ Flags, these flags will be used when compiling C++.

-I 标志用于指定编译时要使用的附加包含目录。

通常在指定包含目录时使用 CPPFLAGS 是一个好主意,这样您就知道它即使项目有一些源文件被编译为 C 也会被使用。

当然,也可能存在仅希望 C 或 C++ 使用包含目录而不是两者同时使用的情况。在这种情况下,最好使用 CFLAGS 或 CXXFLAGS。


9
最好使用CPPFLAGS指定包含目录。
./configure CPPFLAGS="-I/your/whatever/includedir"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接