这就是我所做的,但它会导致错误:
1:在win32-msvc2008 \ qmake.conf中我设置QMAKE_CFLAGS_RELEASE = -O1 -Og -GL -MD
2:从MSVC2008 CMD开始,我运行vcvarsall.bat x86
和vcvars32.bat "C:\Program Files\Microsoft Visual Studio 9.0\VC\bin
3:从Qt 4.6.2 CMD我运行以下
C:\ Qt \ 4.6.2> configure -release -nomake examples -nomake demos -no-exceptions -n o-stl -no-rtti -no-qt3support -no-scripttools -no-openssl -no-opengl -no-webkit -no-phonon -no-style-motif -no-style-cde -no-style-cleanlooks -no-style-plastique -no-sql-sqlite -platform win32-msvc2008 -static -qt-libjpeg -qt-zlib -qt-libpng
然后nmake
然而,我每次都遇到这些错误:
link /LIBPATH:"c:\Qt\4.6.2\lib"
/ LIBPATH:“c:\ Qt \ 4.6.2 \ lib”/ NOLOGO / INCR EMENTAL:NO / MANIFEST /MANIFESTFILE:"tmp\obj\release_static\assistant_adp.interme diate.manifest“/ SUBSYSTEM:WINDOWS “/ MANIFESTDEPENDENCY:类型= '的win32' 名字=“微 soft.Windows.Common - 控制 版本= '6.0.0.0' publicKeyToken ='6595b64144ccf1df' 语言= '' ProcessorArchitecture用于= ''” /OUT:......\bin\assistant_adp.exe @C :\ DOCUME〜1个\ Geeko \ LOCALS〜1个\ TEMP \ nm3F8.tmp fontpanel.obj:MSIL .netmodule或 用/ GL编译的模块; 用/ LTCG重启li nk;添加/ LTCG 到链接命令行来改进 链接器性能main.obj:错误 LNK2001:未解析的外部符号 “class QObject * __cdecl qt _plugin_instance_qjpeg(void)“(?qt_plugin_instance_qjpeg @@ YAPAVQObject @@ XZ) ...... \ bin \ assistant_adp.exe:致命 错误LNK1120:1个未解析的外部
NMAKE:致命错误U1077: '“C:\ Program Files \ Microsoft Visual Studio 9.0 \ VC \ BIN \ link.EXE“':返回 代码'0x460'停止。
NMAKE:致命错误U1077:'“C:\ Program Files \ Microsoft Visual Studio 9.0 \ VC \ BIN \ nmake.exe”':返回代码'0x2'停止。
NMAKE:致命错误U1077:'cd':返回代码'0x2'停止。
NMAKE:致命错误U1077:'cd':返回代码'0x2'停止。
NMAKE:致命错误U1077:'cd':返回代码'0x2'停止。
谢谢你。
答案 0 :(得分:1)
我尝试用MS VS 2008做到这一点并且有效。
C:\ Qt \ 4.6.2> configure -release -static -opensource -no-fast -no-exceptions -no-accessibility -no-rtti -no-stl -no-opengl -no-openvg -no- incredibuild-xge -no-style-plastique -no-style-cleanlooks -no-style-motif -no-style-cde -no-style-windowsce -no-style-windowsmobile -no-style-s60 -no-gif - no-libpng -no-libtiff -no-libjpeg -no-libmng -no-qt3support -no-mmx -no-3dnow -no-sse -no-sse2 -no-iwmmxt -no-openssl -no-dbus -platform win32 -msvc2008 -arch windows -no-phonon -no-phonon-backend -no-multimedia -no-audio-backend -no-script -no-scripttools -webkit -no-declarative
但是,在构建静态链接到QWebKit的项目时,我遇到了这些错误:
1>创建库C:\ Users \ Geeko \ Desktop \ Qt \ TestQ \ Release \ TestQ.lib和对象C:\ Users \ Geeko \ Desktop \ Qt \ TestQ \ Release \ TestQ.exp
1> QtWebKit.lib(PluginPackageWin.obj):错误LNK2019:未解析的外部符号_VerQueryValueW @ 16在函数“类WebCore :: String __cdecl WebCore :: getVersionInfo中引用(void * const,类WebCore :: String const& )“(?getVersionInfo @ WebCore @@ YA?AVString @ 1 @ QAXABV21 @@ Z)
1> QtWebKit.lib(PluginPackageWin.obj):错误LNK2019:未解析的外部符号_GetFileVersionInfoW @ 16在函数“private:bool __thiscall WebCore :: PluginPackage :: fetchInfo(void)”中引用(?fetchInfo @ PluginPackage @ WebCore @ @AAE_NXZ)
1> QtWebKit.lib(PluginPackageWin.obj):错误LNK2019:未解析的外部符号_GetFileVersionInfoSizeW @ 8在函数“private:bool __thiscall WebCore :: PluginPackage :: fetchInfo(void)”中引用(?fetchInfo @ PluginPackage @ WebCore @ @AAE_NXZ)
1> QtWebKit.lib(PluginDatabaseWin.obj):错误LNK2019:未解析的外部符号__imp__PathRemoveFileSpecW @ 4在函数“class WebCore :: String __cdecl WebCore :: safariPluginsDirectory(void)”中引用(?safariPluginsDirectory @ WebCore @@ YA? AVString @ 1 @ XZ)
1> QtWebKit.lib(PluginDatabaseWin.obj):错误LNK2019:函数“void __cdecl WebCore :: addWindowsMediaPlayerPluginDirectory(类WTF :: Vector&)”中引用了未解析的外部符号__imp__SHGetValueW @ 24(?addWindowsMediaPlayerPluginDirectory @ WebCore @@ YAXAAV?$矢量@ VString @ @@ WebCore的$ 0A @@ WTF @@@ Z)
1> QtWebKit.lib(PluginDatabaseWin.obj):错误LNK2019:函数“void __cdecl WebCore :: addMacromediaPluginDirectories(类WTF :: Vector&)”中引用了未解析的外部符号__imp__PathCombineW @ 12(?addMacromediaPluginDirectories @ WebCore @@ YAXAAV?$矢量@ VString @ @@ WebCore的$ 0A @@ WTF @@@ Z)
1> C:\ Users \ Geeko \ Desktop \ Qt \ TestQ \ Release \ TestQ.exe:致命错误LNK1120:6个未解析的外部
我是否需要检查Qt项目选项中的内容? 我检查了QtCore,QtGui,Network和WebKit。
答案 1 :(得分:0)
尝试设置这些环境变量:
QTDIR
:c:\ Qt \ 4.6.2或解压缩Qt来源的任何地方。QMAKESPEC
:win32-msvc2008 %QTDIR%/bin
到PATH
使用'Visual Studio 2008命令提示符'(在VS2008的“工具”菜单中)代替Qt。
答案 2 :(得分:0)
您是否考虑过Qt选择默认值的std :: string类型?
这是一个小编译器开关 -Zc:wchar_t - ,它明确地将wchar_t定义为unsigned short而不是内置类型。 如果您在最后省略 - ,即 -Zc:wchar_t ,它会更改,并且可能与您的项目更兼容。