0

我想在 c++ 应用程序中嵌入 guile,但是当我尝试编译时出现“未定义的引用”错误:Ubuntu 12.04 guile-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,一切都按预期工作。

有谁知道,什么可能导致这个错误?

最好的,扬-彼得

4

1 回答 1

1

是的。您没有正确遵循他们的构建说明。:-) 特别是,您需要在依赖对象之后指定链接依赖项。试试这个:

gcc -o guile-test `pkg-config guile-1.8 --cflags` guile-test.c `pkg-config guile-1.8 --libs`

特别是,库需要在所有使用它们的对象之后列出,例如guile-test.c.

(顺便说一句,这不是 Guile 特定的。标准链接器总是期望这种排序。)

于 2014-02-11T12:55:13.437 回答