【发布时间】:2013-03-02 15:18:38
【问题描述】:
在链接时,我得到以下信息:
libMain.a(Object.o): In function `Object':
Object.cpp(44): undefined reference to `Transform::MakeIdentity()'
用nm --defined-only libSystem.a肯定看出来
Transform.o:
00000000 T Transform::MakeIdentity()
libSystem.a 和 libMain.a 都已正确输入。链接器命令行选项:
-o "Game.so" -shared -Wl,-z,noexecstack "-lstdc++" "-lsupc++" "-lgnustl_static" "-lgcc" "libSystem.a" "libMain.a" -nostdlib -l" c" -l"m" -l"log" -l"gcc" -Wl,-soname,"libGame" -Wl,--no-undefined
【问题讨论】:
-
@NPE 刚刚编辑了我的问题,提到我已经尝试重新排序库。
-
您的文件是
.cpp但您使用的是 gcc 而不是 g++,这会有所不同吗? -
@AustinMullins 据我所知,gcc 将在 .cpp 文件上调用 g++。
-
@NPE 没关系,解决了它 - 谢谢。当我将它们两次放入我正在使用的 IDE 中时,它会删除第二次提到的同一个库。
标签: gcc linker static-libraries nm