显示的错误是未定义的符号,而不是我从示例中复制的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
_cairo_image_source_finish':|
(.text+0x1c)||undefined reference to
pixman_image_unref'|
另外还有50个喜欢它。
由以下内容生成:main.c:
_cairo_image_source_finish':|
(.text+0x1c)||undefined reference to
任何帮助修复和理解正在发生的事情将不胜感激。 感谢。
答案 0 :(得分:2)
所以这个问题的解决方案如下:
将pkg-config用于所有正确的包含。通过添加以下内容自动执行:
pkg-config --cflags --libs cairo
(在代字键上用“`”包围。)
到编译器设置中的“其他选项”选项卡。
我使用链接“其他选项”选项卡执行相同的操作:
pkg-config --libs cairo
(也被“`”,重音坟墓所包围)
现在我构建并编译没有错误,但是当我运行它时,除了一个空的控制台窗口我什么也看不见:/
答案 1 :(得分:1)
当您使用png表面时,还需要在pkconfig行中包含“cairo-png”。试试
$(pkg-config --cflags --libs cairo cairo-png)
有关cairo相关pkg-config选项的完整列表,请查看/ usr / lib / pkgconfig。
祝你好运。阿尔文
答案 2 :(得分:1)
这显然意味着链接器无法找到链接所需的所有引用。具体来说,您的cairo库函数依赖于pixman_image_unref
,它位于不同的库中,并且链接器无法找到此库。您需要包含pixman库或pixman_image_unref
可用的任何其他库。
答案 3 :(得分:0)
只需使用-lpixman-1。 当你在末尾给出-L / _path_to_lib / add -lpixman-1时,即
-L/_path_to_lib/ -lpixman-1
答案 4 :(得分:0)
我遇到了同样的问题,我在没有pkg-config的情况下解决了这个问题,只是链接到/ usr / lib下的libcairo.so。
g++ -L/usr/lib -lcairo hello.o -o hello
我第一次尝试使用eclipse luna但是没有工作,所以我使用自定义makefile从终端运行它:
CC=g++
CFLAGS=-c -Wall -I/usr/include/cairo
LDFLAGS=-L/usr/lib -lcairo
SOURCES=hello.c
OBJECTS=$(SOURCES:.c=.o)
EXECUTABLE=hello
all: $(SOURCES) $(EXECUTABLE)
$(EXECUTABLE): $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJECTS) -o $@
.c.o:
$(CC) $(CFLAGS) $< -o $@
希望它有所帮助。
欢呼声