【发布时间】:2010-11-08 21:07:08
【问题描述】:
我正在使用 Eclipse-CDT 在 Ubuntu x64 上设置 C++ 项目。我基本上是在打个招呼,并链接到一个商业 3rd 方库。
我已经包含了头文件,链接到他们的库,但我仍然遇到链接器错误。除了明显的问题之外,这里是否还有一些可能的问题(例如,我 99% 确定我正在链接到正确的库)。
- 有没有办法确认我链接的静态库是 64 位的?
- 有没有办法确认该库具有我期望它具有的类(和方法)?
Eclipse 说:
构建目标:LinkProblem 调用:GCC C++ 链接器 g++ -L/home/notroot/workspace/somelib-3/somelib/target/bin -o"LinkProblem" ./src/LinkProblem.o -lsomelib1 -lpthread -lsomelib2 -lsomelib3 ./src/LinkProblem.o:在函数“main”中: /home/notroot/workspace/LinkProblem/Debug/../src/LinkProblem.cpp:17:未定义对“SomeClass::close()”的引用 ./src/LinkProblem.o:在函数“SomeOtherClass”中: /home/notroot/workspace/somelib-3/somelib/include/sql/somefile.h:148:未定义对“SomeClass::SomeClass()”的引用 /home/notroot/workspace/somelib-3/somelib/include/sql/somefile.h:148:未定义对“用于 SomeOtherClass 的 vtable”的引用 /home/notroot/workspace/somelib-3/somelib/include/sql/somefile.h:151:未定义对“SomeClass::~SomeClass()”的引用 ./src/LinkProblem.o:在函数“~SomeOtherClass”中: /home/notroot/workspace/somelib-3/somelib/include/sql/somefile.h:140:未定义对“用于 SomeOtherClass 的 vtable”的引用 /home/notroot/workspace/somelib-3/somelib/include/sql/somefile.h:140:未定义对“SomeClass::~SomeClass()”的引用 /home/notroot/workspace/somelib-3/somelib/include/sql/somefile.h:140:未定义对“SomeClass::~SomeClass()”的引用 collect2: ld 返回 1 个退出状态 make: *** [LinkProblem] 错误 1【问题讨论】:
-
第三方库是 64 位的吗?
-
是的,它是 64 位的。不过,您可能会有所作为。如何确保我的代码/项目是 64 位的?在 Visual Studio 中,我创建了一个 x64 构建配置。
-
有没有办法确认第三方库是64位的?例如。使用工具或其他工具检查 .a 文件?
-
它在哪里?谷歌显示在 /usr/lib64 中有一个半约定
-
第三方lib文件在这里:/home/notroot/workspace/somelib-3/somelib/target/bin
标签: c++ linker g++ eclipse-cdt