1

我正在开发一个使用 boost 作为依赖项之一的游戏引擎http://ducttape-dev.org 。有一天,当我正在编写一个链接到我的游戏引擎的测试应用程序时,OgreProcedural 的 Extruder 抛出了这种类型的类似错误。经过几个小时的故障排除和谷歌搜索后,我进行了系统更新(我正在运行archlinux)并重建了所有依赖项。重新启动,仍然有同样的错误。试图重建引擎,并得到链接器错误。每次我尝试链接引擎时,都会抛出此错误http://pastebin.com/PGH25Yuy

这恰好发生在 libMyGUI 上,但我得到它是在引擎中引用文件,并且全部采用“(错误内容)部分中引用的格式(更多错误内容)[非虚拟 thunk 到(某些文件)的(一些文件)在丢弃部分(某些文件)中定义”。我可以从源代码构建 MyGUI 并且不会出错,我可以从源代码构建 boost 并且不会出错。我不知道如何解决这个问题。我什至不知道这意味着什么。任何帮助(即使你可以告诉我这是什么类型的错误)将不胜感激。

archlinux x64、amd64 athlon x2、5Gb RAM、gcc 4.6.2、binutils 2.21.1、boost 1.47.0

4

1 回答 1

2

以前我在更新到 gcc 4.6.2 后遇到了类似的错误。奇怪的是,所有软件包(gcc、libtool、boost)的降级并没有解决问题。问题似乎是混合编译:我重新升级了所有包(最新版本的 repo)然后丢弃旧的编译数据(make clean)并重建了整个东西。然后它起作用了。

这是我得到的类似错误:

.text._ZN5boost16exception_detail10clone_implINS0_19error_info_injectorISt12out_of_rangeEEED2Ev '在部分.text._ZN5boost16exception_detail10clone_implINS0_19error_info_injectorISt12out_of_rangeEEED1Ev引用[升压:: exception_detail :: clone_impl> ::〜clone_impl()]' 的./source/gepetto/.libs/libgepetto.a(libslab_la-layout.o):在 ./source/gepetto/.libs/libgepetto.a(libslab_lalay) 的废弃部分中定义

于 2011-11-04T06:35:29.630 回答