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

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

我收到了错误

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

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

最佳答案 您已指定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
                                                ^^^^^^^^
点赞