我在工作中使用的Linux系统上,软件包已经很老了,而且没有root访问权限。我正在使用--prefix=[家目录下的某个位置]
从源代码编译我需要的软件包。我的问题是我无法找到如何让configure命令在特定目录中查找头文件。源代码是cpp。我尝试了一些与g++
相关的环境变量和选项,以及搜索和谷歌,但都没有成功。有人可以帮助我解决这个问题吗?
我在工作中使用的Linux系统上,软件包已经很老了,而且没有root访问权限。我正在使用--prefix=[家目录下的某个位置]
从源代码编译我需要的软件包。我的问题是我无法找到如何让configure命令在特定目录中查找头文件。源代码是cpp。我尝试了一些与g++
相关的环境变量和选项,以及搜索和谷歌,但都没有成功。有人可以帮助我解决这个问题吗?
通常你可以在CXXFLAGS
中传递额外的编译器标志。对于gcc
,您可以使用-I/some/dir
指定更多的包含目录,例如:
$ ./configure CXXFLAGS="-I/some/dir/"
其中 /some/dir/
包含您的头文件。
通常的做法是使用 --with-<feature>=<header目录>
。
--help
告诉你什么,它就是什么。 - Ignacio Vazquez-AbramsCPPFLAGS = 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。
./configure CPPFLAGS="-I/your/whatever/includedir"