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

Dav*_*fau 5 compiler-construction homebrew gcc graphviz

我正在尝试使用GCC 4.2.1编译程序,该程序需要在Mac OS X(10.8.3)上随Homebrew一起安装的库。这是一个使用gvc.h的简单C程序,它是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
Run Code Online (Sandbox Code Playgroud)

我得到错误

simple.c:1:17: error: gvc.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)

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

mad*_*tya 5

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

gcc -I/usr/local/Cellar/graphviz/2.28.0/include  -L/usr/local/Cellar/graphviz/2.28.0/lib -lgvc simple.c
Run Code Online (Sandbox Code Playgroud)

(我假设 -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
                                                ^^^^^^^^
Run Code Online (Sandbox Code Playgroud)