使用gcc编译C. 而
#include "/absolute/path/to/my/file"
工作正常,
#include "../../relative/path/to/my/file"
失败,“没有这样的文件或目录”。仅当文件放在项目目录之外时才会发生这种情况。文件具有读取权限。可能是什么原因?
答案 0 :(得分:2)
使用格式时
#include "some_file.h"
默认情况下,预处理器与源文件位于同一目录中,如果在那里找不到该文件,它会查找头文件搜索路径。
如果头文件与源文件不在同一目录中,而不在预处理器search-path的某个目录中,则无法找到它。
您可以编写相对路径或完整路径:
#include "../some_directory/some_file.h"
答案 1 :(得分:0)
答案 2 :(得分:0)
使用gcc和本地头文件时,需要在构建命令中添加包含路径。
mysource.c:
#include "localfile.h"
构建命令:
gcc -o program mysource.c
只要头文件与源(运行命令的位置)位于同一目录中,此方法就可以正常工作。如果您的头文件位于不同的目录中,则可以使用-I
选项包含:
gcc -I../headerdir -o hello.exe hello.c
或绝对的道路:
gcc -I/home/user/myprogra/headerdir -o hello.exe hello.c