Qt/mingw32未定义的引用错误...无法链接.lib

11 c++ linker qt mingw

我是Qt的新手,有一个我无法解决的错误.

我有一堆windows(VS2005)静态库文件(.lib).我正在测试它们是否与Qt配合良好.所以我选择了最简单的库.(叫MessageBuffer).

所以我添加MessageBuffer.hmain.cpp,而在添加这些文件的位置INCLUDEPATH.pro.

在那之前一切都很好,我可以使用类和Qt IDE显示所有方法和一切.所以对我来说,它看起来像是找到了.h文件.

现在我添加了MessageBuffer.lib(VS2005/Debug版本),.pro如下所示:

LIBS += E:/SharedLibrary/lib/MessageBufferd.lib
Run Code Online (Sandbox Code Playgroud)

我也尝试过以下方法:

win32:LIBS += E:/SharedLibrary/lib/MessageBufferd.lib
LIBS += -LE:/SharedLibrary/lib -lMessageBufferd
win32:LIBS += -LE:/SharedLibrary/lib -lMessageBufferd
Run Code Online (Sandbox Code Playgroud)

这是我的.pro文件的内容:

QT += opengl
TARGET = SilverEye
TEMPLATE = app
INCLUDEPATH += E:/SharedLibrary/MessageBuffer
SOURCES += main.cpp \
    silvereye.cpp
HEADERS += silvereye.h
FORMS += silvereye.ui
OTHER_FILES += 
win32:LIBS += E:/SharedLibrary/lib/MessageBufferd.lib
Run Code Online (Sandbox Code Playgroud)

他们都给了我同样的错误:(即使我不包括,我也会得到同样的错误.lib)

Running build steps for project SilverEye...
Configuration unchanged, skipping QMake step.
Starting: C:/Qt/2009.03/mingw/bin/mingw32-make.exe -w 
mingw32-make: Entering directory `C:/Documents and Settings/JP/My Documents/QTProjects/SilverEye'
C:/Qt/2009.03/mingw/bin/mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory `C:/Documents and Settings/JP/My Documents/QTProjects/SilverEye'
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mthreads -Wl -Wl,-subsystem,windows -o debug\SilverEye.exe debug/main.o debug/silvereye.o debug/moc_silvereye.o -L"c:\Qt\2009.03\qt\lib" -lopengl32 -lglu32 -lgdi32 -luser32 -lmingw32 -lqtmaind E:/SharedLibrary/lib/MessageBufferd.lib -lQtOpenGLd4 -lQtGuid4 -lQtCored4
mingw32-make[1]: Leaving directory `C:/Documents and Settings/JP/My Documents/QTProjects/SilverEye'
mingw32-make: Leaving directory `C:/Documents and Settings/JP/My Documents/QTProjects/SilverEye'
debug/main.o: In function `Z5qMainiPPc':
C:/Documents and Settings/JP/My Documents/QTProjects/SilverEye/main.cpp:12: undefined reference to `MessageBuffer::MessageBuffer()'
C:/Documents and Settings/JP/My Documents/QTProjects/SilverEye/main.cpp:13: undefined reference to `MessageBuffer::Append(char*, int)'
C:/Documents and Settings/JP/My Documents/QTProjects/SilverEye/main.cpp:17: undefined reference to `MessageBuffer::~MessageBuffer()'
C:/Documents and Settings/JP/My Documents/QTProjects/SilverEye/main.cpp:17: undefined reference to `MessageBuffer::~MessageBuffer()'
collect2: ld returned 1 exit status
mingw32-make[1]: *** [debug\SilverEye.exe] Error 1
mingw32-make: *** [debug] Error 2
Exited with code 2.
Error while building project SilverEye
When executing build step 'Make'
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

Jes*_*ogt 5

基于在g ++(mingw)和MSDN论坛帖子编译的应用程序中使用可视化工作室编译的库,我不能混合使用VC和GCC,看起来你不能将gcc应用程序与visual c ++编译库链接.

解决方案是使用相同的编译器重新编译所有内容.