我的工作场所有一个linux系统,包含很旧的软件包,没有root权限。我正在使用--prefix=[somewhere in homedir]
从源代码编译我需要的包。我的问题是,我无法找到如何说服configure在特定目录中查找头文件。来源是cpp。我尝试了与g++
相关的环境变量并查找标记和谷歌搜索,但我没有成功。有人可以帮我解决这个问题吗?
答案 0 :(得分:22)
通常,您可以在CXXFLAGS
内传递其他编译器标志。对于gcc
,您可以使用-I/some/dir
指定更多包含目录,例如
$ ./configure CXXFLAGS="-I/some/dir/"
其中/some/dir/
包含您的标题。
答案 1 :(得分:16)
执行此操作的常规方法是--with-<feature>=<header directory>
。
答案 2 :(得分:7)
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 ++使用include目录,但不能同时使用两者。在这种情况下,使用CFLAGS或CXXFLAGS显然会更好地服务。
答案 3 :(得分:4)
最好使用CPPFLAGS指定包含目录。
./configure CPPFLAGS="-I/your/whatever/includedir"