使文件无法打开标头
make file not able to open header
我正在使用make编译一个C/C++项目。但是,编译过程失败,并显示以下错误消息:**正在编译lib/crypto/rsaCipher.cC:/Davidviewservermain\sysimg ufa\bora\vmacore for ufa src\bora\lib\crypto\rsaCipher.c(15):致命错误C1083:无法打开包含文件:"openssl/rsa.h":无such文件或目录,我看到rsaCipher.c是包含rsa.h文件的哈希。但是,即使头文件存在于openssl文件夹中,make进程也无法打开它。make过程如何查找头文件的位置?是它们的任何环境变量,如INCLUDE,以提供将由make进程检查的所有头文件的搜索路径。我使用的是嵌入式窗口。
make过程如何查找头文件的位置?
它没有,也不需要。需要查找它们的是编译器*,它通过告诉它在配置包含搜索路径时要查找的位置来实现。
是它们的任何环境变量,如INCLUDE,以提供将由make进程检查的所有头文件的搜索路径。
这是基于编译器,而不是make。如果编译器检查任何环境变量的include搜索路径,则可以在运行make之前设置该路径。
然而,通常情况下,您会在Makefile中设置一个变量,然后在编译规则中使用该变量:
INC=-I/usr/informix/incl/c++ /opt/informix/incl/public
main: test.cpp
gcc -Wall $(LIB) $(INC) -c test.cpp
请注意,上面向您展示了如何在编译命令中放置include路径,但它并没有展示最佳实践:依赖关系不正确,因此make并不总是知道它需要在应该重建目标的时候重建目标。我还没有详细研究过,但这个问题和答案可能会帮助您生成健壮的makefile。
*嗯,确实是预处理器,但在现代工具链中,它嵌入在编译器可执行文件中,或者由编译器驱动程序自动调用。
- .cpp和.h文件中的模板专用化声明
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 文本文件中的单词链表
- CMake-按正确顺序将项目与C运行时对象文件链接
- 使用新行和不使用新行读取文件
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 挂起和取消挂起一个文件DLL
- 如何确定我已使用非编码文件到达 EOF?
- 命名空间中具有.h和.cpp文件的类
- 如何使用ndk-build.cmd构建Android.so文件
- 从包含m行的文件中提取n行,必要时(惰性地)重复该文件
- 读取文件并输入到矢量中
- 在C++中查找文件
- c++库的公共头文件中应该包含什么
- 用c++从输入文件中读取另一行
- Cppcheck生成xml转储文件
- 读取文件的最后一行并输入到链接列表时出错
- 无法编译 rtmidi 测试 cmidiin.cpp 文件, 非法指令
- 如何将内容数组写入文本文件?
- C++ Windows 驱动程序MSB3030无法复制该文件,因为它找不到