问题描述
||
好吧,我有一些Cpp源文件和头文件,并且头文件包含形式为include的语句,
#include<include/config.h>
#include<include/controls.h>
事情是即时通讯在Windows上使用gcc,它说没有这样的文件或目录,因为Windows样式路径没有\'/ \'而不是\'\\\',
所以我将路径更改为include \\ config.h,但问题又出在config.h中,其中包含许多头文件,它们具有相似的unix路径样式,并且更改所有头文件中的路径是不可行的。一个库,并且有数百个这样的头文件,有什么方法可以使用GCC(minGW)进行编译?
谢谢 :)
这听起来像是一个愚蠢的问题,很抱歉!
解决方法
我不认为ѭ1的方向是这里的问题。出于(某些)unix兼容性的目的,Windows在准确地调用其API时应为您在两者之间进行转换。
我认为问题是包含路径。尝试使用编译程序
gcc -o output.exe -I\"c:\\path\\to\\directory\\above\\include\" file.c
因此,在使用include标志指定的目录中,存在一个包含标题的子目录\“ include \”。假设其他标头中的所有路径都与此相对。
,config.h
和controls.h
不是标准头文件。尝试以下方法:
#include \"include/config.h\"
#include \"include/controls.h\"
更好的方法是使用命令行指定包含目录并使用
#include \"config.h\"
#include \"controls.h\"
mingw
使用的选项与所有其他c编译器相同::8ѭ...
正如其他人所说,/
vs.\\
是没有问题的。甚至Microsoft编译器和实用程序在任何地方都接受“ 1”。 ѭ10的使用是历史错误,是不必要的。
,您可以在这里很好地讨论您的问题:
如何在C ++中生成与操作系统无关的路径
,不要将正斜杠“ 1”更改为反斜杠“ 10”,因为编译器会将下一个字符解释为特殊字符“ 15”。 GCC在Windows上处理UNIX样式的路径没有问题。问题可能出在编译器缺少-I
指令-类似于-I.
来搜索当前目录和子目录中的文件。