【问题标题】:Override system headers include when compiling with gcc使用 gcc 编译时覆盖系统头文件
【发布时间】:2012-12-26 11:36:09
【问题描述】:

我目前正在尝试编译一个使用 openssl 头文件的 C++ 源文件,但编译器使用位于 /usr/include/openssl 的系统 openssl 头文件,我希望它使用 /usr/local/openssl/1.0。 1c/include/openssl 包含路径。我可能必须给出指向最后一条路径的“-I”标志,但它会使系统保持不变。

g++ -o src/base64.o -c -O3 -arch x86_64 -Iinclude/cryptoplus -I/usr/local/openssl/1.0.1c/include/openssl src/base64.cpp

我的环境变量似乎没有强制使用 /usr/include/openssl 包含目录,并且我正在使用 OSX 10.8,抱歉,如果这是新手问题,但它有点令人不安。

提前,谢谢!

【问题讨论】:

  • 可能是因为默认情况下编译器使用标志在 /usr/include/ 和子目录中查找头文件 - 我您只是说它可能也使用了其他路径。尝试在 C++ 源文件中指向您需要的标头的直接路径,例如 #include /local/openssl/1.0.1c/include/openssl/name_of_file.h> - 这也不是好方法
  • 我认为-I 指定的路径应该优先于系统包含路径。

标签: c++ osx-mountain-lion


【解决方案1】:

我的错,我很累! openssl 包含路径不正确,我需要指定

-I/usr/local/openssl/1.0.1c/include

没有 openssl 文件夹。

include调用openssl文件夹内的头文件

#include <openssl/opensslv.h>

感谢您的 cmets。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-08
    • 2012-06-13
    • 2015-01-19
    • 1970-01-01
    • 2012-09-08
    • 1970-01-01
    相关资源
    最近更新 更多