首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >编译/链接到开罗图书馆

编译/链接到开罗图书馆
EN

Stack Overflow用户
提问于 2011-12-07 20:36:04
回答 1查看 7.3K关注 0票数 4

我正在尝试测试一些简单的Cairo程序,但是我很难理解如何包含源文件。我安装了开罗图书馆-这只是一个如何让gcc知道的问题.

在/usr/local/include/cairo

  • I中安装了.h文件(包括cairo.h),在/usr/local/lib和/usr/local/lib/cairo

中安装了.dylib文件

是否还有我应该知道的安装的其他组件?(我只是用“”来安装这个库)

我正试图像这样编译:

代码语言:javascript
运行
复制
$ gcc cairoTest.c -I/usr/local/include/cairo -L/usr/local/lib/

我的cairoTest.c文件以以下内容开头:

代码语言:javascript
运行
复制
include <cairo.h>

gcc正在寻找cairo.h,但它给出了以下错误信息。我认为它没有正确链接到.dylib文件,但我不确定。我还不熟悉编译/链接。

代码语言:javascript
运行
复制
gcc cairoTest.c -I/usr/local/include/cairo -L/usr/local/lib/cairo
Undefined symbols for architecture x86_64:
  "_cairo_image_surface_create", referenced from:
      _main in ccVd9Pet.o
  "_cairo_create", referenced from:
      _main in ccVd9Pet.o
  "_cairo_scale", referenced from:
      _main in ccVd9Pet.o
  "_cairo_set_line_width", referenced from:
      _main in ccVd9Pet.o
  "_cairo_set_source_rgb", referenced from:
      _main in ccVd9Pet.o
  "_cairo_rectangle", referenced from:
      _main in ccVd9Pet.o
  "_cairo_stroke", referenced from:
      _main in ccVd9Pet.o
  "_cairo_surface_write_to_png", referenced from:
      _main in ccVd9Pet.o
  "_cairo_destroy", referenced from:
      _main in ccVd9Pet.o
  "_cairo_surface_destroy", referenced from:
      _main in ccVd9Pet.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make: *** [all] Error 1

在我的编译中包括开罗库,我应该做什么不同的事情?

谢谢,

EN

回答 1

Stack Overflow用户

发布于 2011-12-07 21:27:40

试着用

代码语言:javascript
运行
复制
 gcc -Wall -g cairoTest.c -I/usr/local/include/cairo -L/usr/local/lib/ -lcairo -o cairoTest

(但您可能需要其他库,可能是通过$(pkg-config --cflags --libs cairo)或类似的)

你的文件应该从

代码语言:javascript
运行
复制
 #include  <cairo.h>
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8422173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档