• 6811阅读
  • 1回复

调用DLL 出问题 [复制链接]

上一主题 下一主题
离线liyayao
 

只看楼主 正序阅读 楼主  发表于: 2010-06-25
生成Dll。文件:llib.pro ,  lib_global.h,  lib.h,  lib.cpp
lib.pro:

TARGET = lib
TEMPLATE = lib

DEFINES += LIB_LIBRARY

SOURCES += lib.cpp

HEADERS += lib.h\
        lib_global.h


lib.h:

#ifndef LIB_H
#define LIB_H
#include <QMainWindow>
#include "lib_global.h"

class LIBSHARED_EXPORT MainWindow : public QMainWindow {
public:
    MainWindow(QWidget *parent = 0);
};

#endif // LIB_H

lib.cpp:

#include "lib.h"
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
}


lib_global.h:

#ifndef LIB_GLOBAL_H
#define LIB_GLOBAL_H

#include <QtCore/qglobal.h>

#if defined(LIB_LIBRARY)
#  define LIBSHARED_EXPORT Q_DECL_EXPORT
#else
#  define LIBSHARED_EXPORT Q_DECL_IMPORT
#endif

#endif // LIB_GLOBAL_H

生成lib.dll , lib.o , liblib.a

调用人时候:lib_use.pro , main.

lib_use.pro:

TARGET = test
TEMPLATE = app
SOURCES += main.cpp \
    main.cpp

HEADERS += \
    lib.h \
    lib_global.h

LIBS  += \
    lib.dll

main.cpp:

#include <QtGui/QApplication>
#include "lib.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}
编译出现了:


Running build steps for project lib_use...
Configuration unchanged, skipping qmake step.
Starting: F:/Qt/qtcreator-1.3.83/mingw/bin/mingw32-make.exe -w
mingw32-make: Entering directory `F:/QT4/lib_use'
f:\qt\4.7.0-beta1\bin\qmake.exe -spec ..\..\Qt\4.7.0-beta1\mkspecs\win32-g++ -o Makefile lib_use.pro
mingw32-make: Leaving directory `F:/QT4/lib_use'
mingw32-make: Entering directory `F:/QT4/lib_use'
F:/Qt/qtcreator-1.3.83/mingw/bin/mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory `F:/QT4/lib_use'
Makefile.Debug:126: warning: overriding commands for target `debug/main.o'
Makefile.Debug:122: warning: ignoring old commands for target `debug/main.o'

g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mthreads -Wl -Wl,-subsystem,windows -o debug\test.exe debug/main.o debug/main.o -L"f:\Qt\4.7.0-beta1\lib" -lmingw32 -lqtmaind -l.dll -lQtGuid4 -lQtCored4
mingw32-make[1]: Leaving directory `F:/QT4/lib_use'
mingw32-make: Leaving directory `F:/QT4/lib_use'
debug/main.o: In function `Z5qMainiPPc':
F:\QT4\lib_use/../../Qt/4.7.0-beta1/include/QtGui/../../src/gui/kernel/qwidget.h:485: multiple definition of `qMain(int, char**)'
debug/main.o:F:\QT4\lib_use/main.cpp:4: first defined here
f:/qt/qtcreator-1.3.83/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/ld.exe: cannot find -l.dll
collect2: ld returned 1 exit status
mingw32-make[1]: *** [debug\test.exe] Error 1
mingw32-make: *** [debug] Error 2
Exited with code 2.
Error while building project lib_use (target: Desktop)
When executing build step 'Make'


源码:




附件: lib.rar (403 K) 下载次数:4
离线nmiirq

只看该作者 1楼 发表于: 2010-06-28
自己没搞过。
帮顶!
快速回复
限100 字节
 
上一个 下一个