我想在c ++应用程序中嵌入guile,但在尝试编译时遇到“未定义的引用”错误: Ubuntu 12.04 诡计-1.8.8
如果我从guile docs
编译示例gcc -o guile-test `pkg-config guile-1.8 --cflags` `pkg-config guile-1.8 --libs` guile-test.c
在控制台上,它会中止错误:
/tmp/ccHZCHNL.o: In function `inner_main':
guile-test.c:(.text+0x14): undefined reference to `scm_shell'
/tmp/ccHZCHNL.o: In function `main':
guile-test.c:(.text+0x41): undefined reference to `scm_boot_guile'
collect2: ld gab 1 als Ende-Status zurück
如果我编译一些 example.so (包括“libguile.h”)来嵌入guile,那么一切都按预期工作。
有人知道,可能导致此错误的原因是什么?
Best,Jan-Peter
答案 0 :(得分:1)
是。您没有正确遵循他们的构建说明。 :-)特别是,您需要在依赖对象之后指定链接依赖项。试试这个:
gcc -o guile-test `pkg-config guile-1.8 --cflags` guile-test.c `pkg-config guile-1.8 --libs`
特别是,需要在所有使用它们的对象之后列出库,例如guile-test.c
。
(顺便说一句,这不是Guile特有的。标准链接器总是期望这种排序。)