.obj 文件中的 Qt 错误:未解析的外部

Qt error in .obj file: unresolved externals

所以我更改了以下几行:

LIBS += \
    /usr/local/lib/libOpenMeshCore.so  \
    /usr/local/lib/libOpenMeshTools.so

LIBS += \
    -lglut -lGLU

至:

LIBS += \
    -lglut32 -lOpenMeshCored -lOpenMeshToolsd

然后我遇到了这些错误:

QGLViewerWidget.obj:-1: error: LNK2019: unresolved external symbol __imp_glutWireTeapot referenced in function "protected: virtual void __cdecl QGLViewerWidget::draw_scene(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)"

QGLViewerWidget.obj:-1: error: LNK2019: unresolved external symbol __imp_glutSolidTeapot referenced in function "protected: virtual void __cdecl QGLViewerWidget::draw_scene(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)"

meshviewer.obj:-1: error: LNK2019: unresolved external symbol __imp___glutInitWithExit referenced in function glutInit_ATEXIT_HACK

看起来您的 OpenMesh 库是 64 位的,您正在尝试 link 使用 32 位过剩库,这是不可能的。您有两个选择:

  1. 不要使用 glut32,使用 64 位 glut 库。
  2. 如果您需要 32 位二进制文​​件,请将所有其他库也更改为 32 位版本。对于 运行 Linux 上的 32 位应用程序(您似乎已经打开),您可能需要添加 i386 体系结构(有关详细信息,请参阅 here)。