C 和 MinGW:如何修复我的 "No such file or directory" 错误?
C and MinGW: How do I fix my "No such file or directory" error?
我制作了一个 python“编译器”来帮助我用 gcc 编译我的 C 代码,例如它获取我所有的头文件和源文件。所以我的 cmd 命令是 gcc {headers} {source} -o {build_dir}/build.exe -lgdi32 -w
,其中 {headers}
是一个类似于 -Ipath/to/headers/foo.h -Ipath/to/other/headers.foo2.h
的字符串,而 {source}
是相同的但带有 .c 文件。看起来编译器找到了头文件,但是在编译我的代码时却失败了。
(顺便说一句,我正在尝试在我的闪存驱动器上创建一个可移植的编程环境,因此 python 和 mingw 都是可移植的)
这是错误:fatal error: test.h: No such file or directory #include "test.h"
My project tree
我已经将第三方库文件放到了mingw目录下,而不是制作一个自定义的然后在gcc命令中链接它。
-I
选项获取包含头文件的目录的路径,或者更具体地说,使用参数 -Ipath
和指令 #include<a/b.h>
,编译器将尝试查找path/a/b.h
.
处的头文件
所以你不应该给它头文件的路径,只给你使用 include 指令的一个或多个目录。
我制作了一个 python“编译器”来帮助我用 gcc 编译我的 C 代码,例如它获取我所有的头文件和源文件。所以我的 cmd 命令是 gcc {headers} {source} -o {build_dir}/build.exe -lgdi32 -w
,其中 {headers}
是一个类似于 -Ipath/to/headers/foo.h -Ipath/to/other/headers.foo2.h
的字符串,而 {source}
是相同的但带有 .c 文件。看起来编译器找到了头文件,但是在编译我的代码时却失败了。
(顺便说一句,我正在尝试在我的闪存驱动器上创建一个可移植的编程环境,因此 python 和 mingw 都是可移植的)
这是错误:fatal error: test.h: No such file or directory #include "test.h"
My project tree
我已经将第三方库文件放到了mingw目录下,而不是制作一个自定义的然后在gcc命令中链接它。
-I
选项获取包含头文件的目录的路径,或者更具体地说,使用参数 -Ipath
和指令 #include<a/b.h>
,编译器将尝试查找path/a/b.h
.
所以你不应该给它头文件的路径,只给你使用 include 指令的一个或多个目录。