显示的错误是针对 undefined symbol ,而不是我从示例中复制的 Cairo 函数,但我猜是内部函数。我环顾四周并尝试使用 $(pkg-config --cflags --libs cairo),逐字来自使用终端的常见在线示例。
我在使用 EXPORT=(我的 cairos .ps 文件路径)后尝试过。
我目前在链接器设置中的 CodeBlocks“链接库”中有一个选项:
/usr/lib/x86-linux-gnu/libcairo.a
另外,我有 /usr/include/cairo
在我的编译器选项中。
错误:
/usr/lib/x86_64-linux-gnu/libcairo.a(cairo-image-source.o)||In function <code>_cairo_image_source_finish':|
(.text+0x1c)||undefined reference to</code>pixman_image_unref'|
还有 50 个类似的。
由以下内容生成,main.c:
include cairo.h (with # and <>)
int main()
{
cairo_surface_t *surface =
cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 240, 80);
cairo_t *cr =
cairo_create (surface);
cairo_select_font_face (cr, "serif", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD);
cairo_set_font_size (cr, 32.0);
cairo_set_source_rgb (cr, 0.0, 0.0, 1.0);
cairo_move_to (cr, 10.0, 50.0);
cairo_show_text (cr, "Hello, world");
cairo_destroy (cr);
cairo_surface_write_to_png (surface, "hello.png");
cairo_surface_destroy (surface);
return 0;
}
任何帮助修复和理解正在发生的事情将不胜感激。 谢谢。
最佳答案
所以这个问题的解决方案如下:
使用 pkg-config 来获取所有正确的包含内容。通过添加自动执行此操作:
pkg-config --cflags --libs cairo
(波浪线键上用“`”包围。)
到编译器设置中的“其他选项”选项卡。
我对链接器“其他选项”选项卡执行了相同的操作:
pkg-config --libs cairo
(也被“`”包围,重音符号)
现在我构建并编译没有错误,但是当我运行它时,除了一个空的控制台窗口之外什么也看不到:/
关于c - 使用 gcc,我无法获取第 3 方库 Cairo 来链接/编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35743948/