使用 GCC 包含文件时编译失败

Compile failure when including files with GCC

我正在尝试用 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

returns

gtk.h
gtkcheckbutton.h
gtkcheckmenuitem.h
gtkshow.h

所以我不确定我哪里搞砸了。 我的OS是MacOSX 10.8.5,GCC是4.2.1版本。

您应该:

  1. 在波浪号前加一个space:

-I ~/gtk/inst/include/gtk-2.0

  1. 使用绝对路径:

-I /users/username/gtk/inst/include/gtk-2.0

  1. 或使用$HOME:

-I $HOME/gtk/inst/include/gtk-2.0

Shell 仅当 ~ 是单词中的第一个非引号字符时才进行波浪号扩展。你现在得到它的方式,shell 不知道这是试图指向用户主目录。