Qt/mingw32 undefined reference errors...无法链接.lib
我是 Qt 新手,遇到一个无法修复的错误.
I am new to Qt and have one error I am unable to fix.
我有一堆 windows (VS2005) 静态库文件 (.lib
).我正在测试它们是否可以很好地与 Qt 配合使用.所以我选择了我拥有的最简单的库.(称为MessageBuffer
).
I have a bunch of windows (VS2005) static library file (.lib
). And I am testing if they work well with Qt. So I took the most simple library that I have. (Called MessageBuffer
).
所以我将MessageBuffer.h
添加到main.cpp
中,并将这些文件的位置添加到的
.INCLUDEPATH
中>.pro
So I added MessageBuffer.h
to the main.cpp
, and added the location of those file in the INCLUDEPATH
of the .pro
.
在那之前一切看起来都很好,我可以使用类和 Qt IDE 显示所有方法和所有内容.所以对我来说,它看起来像是找到了 .h 文件.
Until then everything seem fine, I can use the class and Qt IDE show all method and everything. So to me it look like it found the .h file.
现在我在 .pro
中添加了 MessageBuffer.lib
(VS2005/Debug 构建),如下所示:
Now I added the MessageBuffer.lib
(VS2005/Debug build) in the .pro
like this:
LIBS += E:/SharedLibrary/lib/MessageBufferd.lib
我还尝试了以下方法:
win32:LIBS += E:/SharedLibrary/lib/MessageBufferd.lib
LIBS += -LE:/SharedLibrary/lib -lMessageBufferd
win32:LIBS += -LE:/SharedLibrary/lib -lMessageBufferd
这是我的 .pro
文件的内容:
Here is the content of my .pro
file:
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
它们都给我同样的错误:(即使我不包含 .lib
,我也会得到同样的错误)
They all give me the same errors: (and I get the same even if I don't include the .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 debugSilverEye.exe debug/main.o debug/silvereye.o debug/moc_silvereye.o -L"c:Qt2009.03qtlib" -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]: *** [debugSilverEye.exe] Error 1
mingw32-make: *** [debug] Error 2
Exited with code 2.
Error while building project SilverEye
When executing build step 'Make'
有人可以帮忙吗?
推荐答案
基于问题在由 g++ (mingw) 编译的应用程序中使用 Visual Studio 编译的库 和 MSDN 论坛帖子 我不能混合 VC &GCC 看来您不能将 gcc 应用程序与可视 c++ 编译库链接.
Based on the question Use libraries compiled with visual studio in an application compiled by g++ (mingw) and the MSDN forum post I can't mix VC & GCC it does not appear you can link a gcc application with visual c++ compiled libraries.
解决方案是使用相同的编译器重新编译所有内容.
The solution would be to recompile everything with the same compiler.
相关文章