我正在尝试使用 gcc 编译程序,但不断收到错误消息,指出找不到我指定要包含的文件。 我的代码(我正在尝试做的事情的简化版本,突出了这个问题):
#include <gtk/gtk.h>
int main(int argc, char *argv[]) {
}
我正在使用 gcc 进行编译,使用:
gcc test.c -I~/gtk/inst/include/gtk-2.0
这给了我
test.c:1:21: error: gtk/gtk.h: No such file or directory
但是,
ls ~/gtk/inst/include/gtk-2.0/gtk | grep gtk.h
返回
gtk.h
gtkcheckbutton.h
gtkcheckmenuitem.h
gtkshow.h
所以我不确定我在哪里搞砸了。 我的操作系统是Mac OSX 10.8.5,GCC版本是4.2.1。
最佳答案
您应该:
- 在波形符前面添加一个空格:
-I ~/gtk/inst/include/gtk-2.0
- 使用绝对路径:
-I /users/username/gtk/inst/include/gtk-2.0
- 或使用
$HOME
:
-I $HOME/gtk/inst/include/gtk-2.0
如果 ~
是单词中的第一个非引号字符,Shell 只会进行波形符扩展。按照您现在的方式,shell 不知道这是试图指向用户主目录。
关于使用 GCC 包含文件时编译失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28712714/