我有几个Cpp源文件和头文件,并且头文件在表单中包含include语句,
#include<include/config.h>
#include<include/controls.h>
事情就是我在Windows上使用gcc并且没有这样的文件或目录,因为windows样式路径有'/'而不是'\',
所以我改变了包含\ config.h的路径,但问题是config.h中包含许多头文件,其中包含类似的unix路径样式,并且不可能更改所有头文件中的路径cos它是一个库,有100个这样的标题,有没有办法用GCC编译这个(minGW)??
谢谢:)
这可能听起来像是一个愚蠢的问题,对不起,如果是!! ..
答案 0 :(得分:2)
我认为/
的方向不是问题所在。为了(某些)unix兼容性的目的,Windows在为其精确调用API时应该为您转换。
我认为问题是包含路径。尝试使用
编译您的程序gcc -o output.exe -I"c:\path\to\directory\above\include" file.c
因此,在使用include标志指定的目录中,有一个包含标题的子目录“include”。这假设您的其他标题中的所有路径都与此相关。
答案 1 :(得分:0)
config.h
和controls.h
不是标准的头文件。试试这个:
#include "include/config.h"
#include "include/controls.h"
更好的方法是使用命令行指定include目录并使用
#include "config.h"
#include "controls.h"
可能mingw
使用与所有其他c编译器相同的选项:(compiler name) -I(directory name)
...
正如其他人所说,/
与\
不是问题。甚至Microsoft编译器和实用程序也会在任何地方接受/
。 \
的使用是一个历史性的错误,不必要地发生。
答案 2 :(得分:0)
不要将正斜杠/
更改为反斜杠\
- 您正在使编译器将下一个字符解释为特殊字符\c
。 GCC在Windows上处理UNIX风格的路径没有问题。问题可能是编译器缺少-I
指令 - 类似-I.
来搜索当前和子目录中的文件。
答案 3 :(得分:0)
在这里可以看到关于你的问题的一个很好的讨论: