2012-03-16 12 views
2

我创建了一个Qt控制台应用程序,但是当我尝试一个发布EXE, 它显示很多库缺少错误,我该如何解决这个问题, 我需要一个独立的exe文件。所有的库应该在exe文件中。请帮助我..我如何创建一个QT控制台应用程序,与静态库的单个EXE

我目前的QT Pro的文件是这样的

#------------------------------------------------- 
# 
# Project created by QtCreator 2012-03-15T15:50:07 
# 
#------------------------------------------------- 


QT  += core network xml 
QT  -= gui 

TARGET = BillingClient 
CONFIG += console 
CONFIG -= app_bundle 
CONFIG += debug_and_release 
TEMPLATE = app 


SOURCES += main.cpp 

HEADERS += \ 
    HttpDaemon.h \ 
    Config.h \ 
    Logger.h \ 
    XmlReader.h \ 
    RequestHandler.h 

OTHER_FILES += \ 
    System.ini \ 
    Response.xml 

图书馆缺少的..

libgcc_s_dw2-1.dll mingwm10.dll

等。

+0

你能告诉什么样的图书馆丢失? Qt库或其他库? – Kunal 2012-03-16 07:10:21

+0

@Kunal请检查编辑.. – 2012-03-16 07:15:01

回答

5
libgcc_s_dw2-1.dll mingwm10.dll 

这些库是由MinGW编译器构建的程序的依赖项。为了摆脱这些DLL,如果我没有记错,使用LIBS + = - 静态。如果你想静态链接Qt库,应该比你构建Qt库静态

UPDATE


如果你想摆脱那些2级dll的我上面提到的,把LIBS += -static在你的.pro文件。

如果你想摆脱诸如QtCore4.dll QtGui4.dll等DLL,你应该静态重建Qt源代码。如果你这样做,你应该首先选择你想要使用的编译器。目前我正在使用MSVC 2010.只需下载最新的qt源代码,使用以下参数执行configure.exe:-debug-and-release -platform win32-msvc2010 -sse -sse2 -no-qt3support -no-s60 -no-cetest -saveconfig config -mp并按照说明操作(请记住,您应该安装MSVC编译器,只需下载MSVC 2010 express,它是免费的)。汇编需要几个小时。完成后,您应该在QtCreator中注册新编译的Qt库。要做到这一点,启动QtCreator - >工具 - >选项 - >生成&运行 - > Qt版本 - >添加。当弹出新的对话框时,导航到您的qt源代码所在的文件夹,进入bin并选择qmake.exe。输入qt版本的名称,例如:“Qt Static”就是这样。之后,您将能够从项目设置中选择新的qt库。

希望它有帮助,如果有什么不清楚的东西,随时问。

+0

可以更具体,让我可以尝试你说什么。 – 2012-03-16 07:42:54

+0

+1为伟大的答案;特别提到MSVS Express! – 2012-03-16 08:55:19

+0

@Davita你能告诉我如何在mingw中编译这个,我没有MSVC与我.. – 2012-03-16 09:02:55

相关问题