qt无法打开shell32.lib,Qt / mingw32未定义的引用错误...无法链接.lib

I am new to Qt and have one error I am unable to fix.

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).

So I added MessageBuffer.h to the main.cpp, and added the location of those file in the INCLUDEPATH of the .pro.

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.

Now I added the MessageBuffer.lib (VS2005/Debug build) in the .pro like this:

LIBS += E:/SharedLibrary/lib/MessageBufferd.lib

I have also tried the following:

win32:LIBS += E:/SharedLibrary/lib/MessageBufferd.lib

LIBS += -LE:/SharedLibrary/lib -lMessageBufferd

win32:LIBS += -LE:/SharedLibrary/lib -lMessageBufferd

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

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 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'

Can anyone help please?

解决方案

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.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值