使用 gcc 链接到使用 Homebrew 安装的动态库?

Posted

技术标签:

【中文标题】使用 gcc 链接到使用 Homebrew 安装的动态库?【英文标题】:Linking to a dynamic library installed with Homebrew using gcc? 【发布时间】:2013-04-13 20:41:38 【问题描述】:

我正在尝试使用 GCC 4.2.1 编译一个程序,该程序需要一个在 Mac OS X (10.8.3) 上随 Homebrew 一起安装的库。这是一个使用 gvc.h 的简单 C 程序,gvc.h 是 graphviz 附带的一个库。文件夹 /usr/local/Cellar/graphviz/2.28.0/lib 包含 libgvc.dylib 和 libgvc.6.dylib,但是当我尝试时

gcc -L/usr/local/Cellar/graphviz/2.28.0/lib -lgvc simple.c

我得到了错误

simple.c:1:17: error: gvc.h: No such file or directory

我怀疑有一个简单的解决方法,但我尝试过的 gcc 选项组合都没有奏效。

【问题讨论】:

【参考方案1】:

您已指定 lib 对象的路径,但未指定需要包含的头文件的路径。您的编译命令需要是这样的:

gcc -I/usr/local/Cellar/graphviz/2.28.0/include  -L/usr/local/Cellar/graphviz/2.28.0/lib -lgvc simple.c

(我假设 -I/usr/.../2.28.0/include 是您可以找到 gvc.h 的位置;如果您不确定,请使用 locate *gvc.h 查找路径。)

另请注意,某些版本的 gcc 使用源文件来确定实际链接的 lib 文件,因此您可能需要指定 .c 文件链接路径/文件之前:

gcc -I/usr/local/Cellar/graphviz/2.28.0/include simple.c -L/usr/local/Cellar/graphviz/2.28.0/lib -lgvc
                                                ^^^^^^^^

【讨论】:

以上是关于使用 gcc 链接到使用 Homebrew 安装的动态库?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Mac 上安装 GCC

mac使用homebrew安装nvm

OpenCV 3.0 的 Homebrew 安装未链接到 Python

即使在安装 4.9 (Homebrew) 后 gcc 版本仍显示 4.2.1

Homebrew安装gcc:curl: (60) SSL certificate problem: certificate has expired

MAC电脑使用Homebrew安装pyenv