【问题标题】:C & Mac: trouble finding a header using pkg-configC 和 Mac:使用 pkg-config 查找标头时遇到问题
【发布时间】:2012-03-03 16:37:08
【问题描述】:

我正在尝试在我的一个项目中使用。我正在使用 Mac,已经获得了带有 pkg​​-config 和 glib-2.0 包的 MacPorts。

当我尝试创建一个包含上述路径的文件时,我收到以下错误(为了清楚起见,它上面的行确实为我提供了正确的目录):

$ pkg-config --cflags --libs glib-2.0
-I/opt/local/lib/glib-2.0/include -I/opt/local/include -L/opt/local/lib -lglib-2.0 -lintl 
$ make
gcc hash-glib.c -c `pkg-config --cflags --libs glib-2.0` -std=c99 -Wall -Wextra -pedantic -O2
hash-glib.c:2:23: error: glib/glib.h: No such file or directory
$

【问题讨论】:

  • 请将您的 shell 提示符缩减为单个字符($#% 分别是普通用户、root 和 C-shell 用户的传统)。它使查看命令更容易。
  • 啊,谢谢提醒,不知道。
  • 列出的任何目录是否有一个glib/glib.h 文件,或者直接有一个glib.h 文件?

标签: c macos


【解决方案1】:

大概你已经跑了:

ls -l /opt/local/lib/glib-2.0/include/glib/glib.h \
      /opt/local/include/glib/glib.h

证明标题#include "glib/glib.h" 实际上存在于pkg-config 告诉您可以找到它的位置之一。如果它不存在,那么 pkg-config 会误导您,编译器会告诉您您被蒙蔽了。

由于编译器将尽最大努力找到标头,因此可以合理地确定该文件不在这些位置中的任何一个。然后你就剩下侦探工作了:glib.h 标头安装在哪里?

find /opt/local -type f -name glib.h

如果它告诉你它在哪里,那么你就可以计算出pkg-config 应该说什么。如果找不到,请扩大搜索范围。如果还是找不到,是不是还没安装?或者你只安装了 glib 运行时,没有安装开发包。

【讨论】:

  • 我的错。我完全看错了方向:我的代码中有一个错字。非常感谢让我再次检查文件路径。
猜你喜欢
  • 2022-10-09
  • 2022-06-26
  • 2021-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-04
  • 2012-06-04
  • 1970-01-01
相关资源
最近更新 更多