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

标签 c macos gcc compilation include

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

最佳答案

您应该:

  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/

    相关文章:

    c - STM32F4加速度计

    c - 为什么 scanf 不能为输入参数赋值?

    c - 如何从文件中读取整数到 C 中的一维数组

    linux - Vim:通过 ssh 访问系统剪贴板 - Linux 到 OS X

    ruby-on-rails - mac 上有两个不同的 ruby​​ 版本?

    gcc - ELF 修改节标志

    mysql - 以编程方式登录mysql

    macos - 如何在 macbook 上打开 .avsc 文件

    c - 预处理Linux源代码并保存到另一个目录

    c++ - 无法在 ubuntu 上运行 googletest(链接器错误)