gcc 在 Cygwin 下产生错误“没有这样的文件或目录”

gcc 在 Cygwin 下产生错误“没有这样的文件或目录”

出于演示目的,这是我的一行程序 test.c :

#include <dbus/dbus.h>

这是我的生成文件:

INC     =   -I/usr/include/dbus-1.0         \
            -I/usr/lib/dbus-1.0/include

test    :   test.c
            gcc $(INC) -c -o test.o test.c

我在 Mer Linux(通过 zypper)和 Cygwin(通过安装程序)上安装了 dbus devel 软件包。 dbus/dbus.h 在两个系统上都可见(ls /usr/include/dbus-1.0 显示包含文件 dbus.h 的文件夹 dbus)。这在 Mer Linux 上编译成功,但在 Cygwin(在 Win 7 上运行的 2.831 64 位)上编译时,出现以下错误:

test.c:1:23: fatal error: dbus/dbus.h: No such file or directory
 #include <dbus/dbus.h>
                       ^
compilation terminated.
makefile:5: recipe for target 'test' failed
make: *** [test] Error 1

我已经尝试了我能想到的所有简单变体来使 Cygwin 工作 - I 和路径之间的空格、路径末尾的额外斜杠、gcc 参数的不同顺序。似乎没有什么简单的方法可以解决这个不应该存在的问题。

帮助!

答案1

A堆栈溢出评论讨论了这种情况的可能性,因为 gcc 或 make 的版本不处理 unix/Windows 路径样式冲突。类似的问题出现在其他这种情况是通过确保安装了 Cygwin 版本的 gcc 来解决的,否则它会依赖于其他东西。

如果您没有安装规范的 Cygwin gcc/make,这可能是导致问题的原因。

相关内容