• 6741阅读
  • 3回复

能问一下静态编译QT的问题~~~ [复制链接]

上一主题 下一主题
离线popo2008
 
只看楼主 正序阅读 楼主  发表于: 2010-06-29
        cl -c -nologo -Zm200 -Zc:wchar_t- -O2 -MT -W3 -w34100 -w34189 -GR -EHsc
DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_EDITION=QT_EDITION_DESKTOP -DQT_KEY
ORDS -DUSE_STATIC_JPEG_PLUGIN -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWO
K_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"..\..\..\include\QtCore" -I"..\..\..\
nclude\QtNetwork" -I"..\..\..\include\QtGui" -I"..\..\..\include\QtXml" -I"..\..
..\include" -I"..\..\shared\fontpanel" -I"..\..\..\include\ActiveQt" -I"tmp\moc\
elease_static" -I"." -I"..\..\..\mkspecs\win32-msvc2008" -Fotmp\obj\release_stat
c\ @d:\Temp\nm17F.tmp
qrc_assistant.cpp
        link /LIBPATH:"g:\Qt\4.6.2\lib" /LIBPATH:"g:\Qt\4.6.2\lib" /NOLOGO /INCR
MENTAL:NO /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.W
ndows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' langu
ge='*' processorArchitecture='*'" /OUT:..\..\..\bin\assistant_adp.exe @d:\Temp\n
180.tmp
main.obj : error LNK2019: 无法解析的外部符号 "class QObject * __cdecl qt_plugin_
nstance_qjpeg(void)" (?qt_plugin_instance_qjpeg@@YAPAVQObject@@XZ),该符号在函数
"public: __thiscall StaticqjpegPluginInstance::StaticqjpegPluginInstance(void)"
??0StaticqjpegPluginInstance@@QAE@XZ) 中被引用
..\..\..\bin\assistant_adp.exe : fatal error LNK1120: 1 个无法解析的外部命令
NMAKE : fatal error U1077: “F:\MVS\vs2008\VC\BIN\link.EXE”: 返回代码“0x460”
Stop.
NMAKE : fatal error U1077: “F:\MVS\vs2008\VC\BIN\nmake.EXE”: 返回代码“0x2”
Stop.
NMAKE : fatal error U1077: “F:\MVS\vs2008\VC\BIN\nmake.EXE”: 返回代码“0x2”
Stop.
NMAKE : fatal error U1077: “cd”: 返回代码“0x2”
Stop.
NMAKE : fatal error U1077: “F:\MVS\vs2008\VC\BIN\nmake.EXE”: 返回代码“0x2”
Stop.
NMAKE : fatal error U1077: “cd”: 返回代码“0x2”
Stop.
NMAKE : fatal error U1077: “F:\MVS\vs2008\VC\BIN\nmake.EXE”: 返回代码“0x2”
Stop.
NMAKE : fatal error U1077: “cd”: 返回代码“0x2”
Stop.
NMAKE : fatal error U1077: “F:\MVS\vs2008\VC\BIN\nmake.EXE”: 返回代码“0x2”
Stop.
离线liwenhui

只看该作者 3楼 发表于: 2010-07-02
========================================
我的修改
========================================
原则:Release 采用静态连接,便与目标程序发布;Debug 动态连接,用于本机开发调试,减少代码大小,提高速度。

步骤:
    (1)修改mkspecs\win32-msvc2008\qmake.conf:
         QMAKE_CFLAGS_RELEASE = -O2 -MT
         QMAKE_CFLAGS_DEBUG   = -Zi -MDd

     (2)配置静态连接Release,编译:(需约2小时)
          configure -release -static -fast -qt-sql-odbc -qt-sql-sqlite -no-webkit
          nmake

     (3)配置动态态连接Debug,编译:(需2~3小时)
          configure -debug -shared -fast -qt-sql-odbc -qt-sql-sqlite -no-webkit
          nmake

**注意**
以上操作在命令行窗口需要从QT4的快捷菜单QT 4.x.x Command Prompt进入,否则环境变量设置不完整,编译出错!
离线popo2008
只看该作者 2楼 发表于: 2010-06-30
我是用vs2008-Qt by Nokia v4.6.2 (VS2008)
mkspecs ----> win32-msvc2008 ----> qmake.conf
修改QMAKE_CFLAGS_RELEASE = -O2 -MD 为QMAKE_CFLAGS_RELEASE = -O2 -MT
修改QMAKE_CFLAGS_DEBUG 为  = -Zi -MTd

使用的是Qt 4.6.2 Command Prompt来编译的

执行:
configure -release -static -fast -qt-sql-odbc -qt-sql-sqlite
nmake
nmake clean

第二次是
configure -release -static -fast -qt-sql-odbc -qt-sql-sqlite -no-webkit
nmake
nmake -clean

提示都是一样的

其他的好像没什么了~~~

我是照着网上弄的~~不知道帮助的位置~~我在assistant里查static的关键字,没看到编译的内容


谢谢了·
离线wd007

只看该作者 1楼 发表于: 2010-06-29
说一下过程。
另外,参阅以下帮助中的说明。
欢迎访问我的博客,一起学习提高
http://blog.csdn.net/qter_wd007
快速回复
限100 字节
 
上一个 下一个