用vs2013编译QT5.3静态库

转载 2014年11月30日 00:38:12

转自百度文库http://wenku.baidu.com/link?url=IMTZd6z5GzPqTZ0oBm7PN-0jEWFqoYZO1yzCopCEBQDMuKSnD01y6DXQvJt3Y8R3kTn1JksszyCjW51l8TVPxOG57jk7ORK452WD9pHsFai,挺好用的。记录在此。


另:我用的configure是转自http://blog.csdn.net/sniper_bing/article/details/38067887 的命令-platform win32-msvc2013 -mp -debug-and-release -static -prefix "E:\Qt\5.3.1-static-vs2013" -qt-sql-sqlite -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -qt-freetype -no-qml-debug -no-angle -nomake tests -nomake examples -skip qtwebkit 
其中 -mp 是启用多核编译的开关

Qt学习(六) VS2013编译Qt5.3.1的静态库

分类: Qtwindows 2014-07-11 08:36147人阅读评论(5)收藏举报

    今天用Qt写了个小程序,拷到另一台电脑发现无法运行,缺少文件。查了一下资料,发现是动态链接库的问题,因为原来一直用的微软系列的开发工具,这个问题不怎么突出,现在用Qt写程序,这个问题就很麻烦了。

    针对这个问题网上找到的资料有两种解决方法,一是将程序需要的库文件放在一起,这个显然很麻烦,而且个人很不喜欢这种方式;另一种就是静态编译,所谓静态编译,就是编译器在编译可执行文件的时候,将可执行文件需要调用的对应动态链接库中的部分提取出来,链接到可执行文件中去,使可执行文件在运行的时候不依赖于动态链接库

    下面介绍一下我自己编译静态库的过程,网上资料不少,但是介绍的都不全面,加上我这方面的基础也不怎么样,着实花了一番功夫。不多废话,开始介绍:

 

1、下载Qt5.3.1的源码:qt-everywhere-opensource-src-5.3.1.zip

打开官网下载页面,点击红线画着的文字“zip”下载源码:

保存图片,改后缀为7z,有下载网址

 

 

2、安装python

保存图片,改后缀为7z,有下载网址

 

 

3、下载完成后解压,注意硬盘的可用空间:

我的解压目录是:E:\Qt

这是我编译完的文件夹大小(包括编译目录和install目录):

 

 

4、根据你的VS版本进入相应的文件夹,我是win32-msvc2013

进入E:\Qt\qt-everywhere-opensource-src-5.3.1\qtbase\mkspecs\win32-msvc2013目录,有两个文件:

打开qmake.conf,修改内容并保存,如下:

原内容:

 

[plain]view plaincopyprint?

QMAKE_CFLAGS_RELEASE    = -O2 -MD  

QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -Zi  

QMAKE_CFLAGS_DEBUG      = -Zi -MDd  

QMAKE_CFLAGS_RELEASE    = -O2 -MD

QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -Zi

QMAKE_CFLAGS_DEBUG      = -Zi -MDd

修改为: 

 

[plain]view plaincopyprint?

QMAKE_CFLAGS_RELEASE    = -O2 -MT  

QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi  

QMAKE_CFLAGS_DEBUG      = -Zi -MTd  

QMAKE_CFLAGS_RELEASE    = -O2 -MT

QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi

QMAKE_CFLAGS_DEBUG      = -Zi -MTd


即将MD(动态)改为MT(静态)。

 

 

5、我的电脑装的是VS2013由开始菜单打开Windows Studio Tools,选择画红线VS2013开发人员命令提示

 

 

6、在“VS2013开发人员命令提示”窗口中输入python

如果向上图一样不认命令,说明环境变量未配置:

输入:

 

[plain]view plaincopyprint?

set PATH=%PATH%;F:\Program Files\Python33  

set PATH=%PATH%;F:\Program Files\Python33

注:F:\Program Files\Python33Python的安装目录(与我的肯定不同,我不是安装在默认位置的,默认位置是C:\Python33) 

 

再次输入python,如下图就OK了:


 按下“Ctrl+z”,再回车,退出Python

 

转至Qt解压目录,我的是:E:\Qt\qt-everywhere-opensource-src-5.3.1

 

关键步骤

执行configure

输入:

 

[plain]view plaincopyprint?

configure -confirm-license -opensource -platform win32-msvc2013 -debug-and-release -static -prefix "E:\Qt\5.3.1-static-vs2013" -qt-sql-sqlite -qt-sql-odbc -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -qt-freetype -no-qml-debug -no-angle -nomake tests -nomake examples -skip qtwebkit  

configure -confirm-license -opensource -platform win32-msvc2013 -debug-and-release -static -prefix "E:\Qt\5.3.1-static-vs2013" -qt-sql-sqlite -qt-sql-odbc -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -qt-freetype -no-qml-debug -no-angle -nomake tests -nomake examples -skip qtwebkit


其中”E:\Qt\5.3.1-static-vs2013“为编译完后的安装目录。 

回车执行,一会后执行完毕:

 

 

7、接下来,执行nmake

 

回车,然后是漫长的等待,估计2个多小时吧,因为我晚上执行后就去睡了,具体多少时间不清楚。

 

 

8nmake完成,整个过程没出什么错,接着就可以install了,输入nmake install命令:

 

 

至此Qt5.3.1的静态库静态库编译完成,接下去就是测试能不能使用了。

 

 

9、打开Qt Creator5.3,工具->选项->构建路径->Qt Versions->添加刚才的安装目录:

 

 

10、切换到 构建套件(Kit)选项卡,添加,这里我取名为”Qt 5.3 static,更改”Qt 版本“为刚才添加的编译完的静态版

 

 

11、新建一个Qt Widgets Application

 

一路默认配置,下一步:

在配置Kit的时候会显示两个,Static就是静态版的,为了做对比,两个都勾选:

 

 

12、先用动态的编译(debugrelease):

 

 

13、再用静态的编译(同样debugrelease):

 

下面是静态编译debug版时的编译输出,我们看到启动的是E盘下面的qmake,也就是我们编译输出的静态链接库:

 

[plain]view plaincopyprint?

08:16:16: 为项目untitled执行步骤 ...  

10 08:16:16: 正在启动 "E:\Qt\5.3.1-static-vs2013\bin\qmake.exe" F:\WorkSpace\Qt\untitled\untitled.pro -r -spec win32-msvc2013  

11   

12 08:16:17: 进程"E:\Qt\5.3.1-static-vs2013\bin\qmake.exe"正常退出。  

13 08:16:17: 正在启动 "F:\Qt_VS2013_Opengl_x86\Tools\QtCreator\bin\jom.exe"   

14   

15     F:\Qt_VS2013_Opengl_x86\Tools\QtCreator\bin\jom.exe -f Makefile.Debug  

16     E:\Qt\5.3.1-static-vs2013\bin\uic.exe ..\untitled\mainwindow.ui -o ui_mainwindow.h  

17     cl -c -nologo -Zm200 -Zc:wchar_t -FS -Zi -MTd -GR -W3 -w34100 -w34189 -EHsc /Fddebug\untitled.pdb -DUNICODE -DWIN32 -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I"E:\Qt\5.3.1-static-vs2013\include" -I"E:\Qt\5.3.1-static-vs2013\include\QtWidgets" -I"E:\Qt\5.3.1-static-vs2013\include\QtGui" -I"E:\Qt\5.3.1-static-vs2013\include\QtCore" -I"debug" -I"." -I"." -I"E:\Qt\5.3.1-static-vs2013\mkspecs\win32-msvc2013" -Fodebug\ @C:\Users\Kaven\AppData\Local\Temp\main.obj.1064.0.jom  

18 main.cpp  

19     cl -c -nologo -Zm200 -Zc:wchar_t -FS -Zi -MTd -GR -W3 -w34100 -w34189 -EHsc /Fddebug\untitled.pdb -DUNICODE -DWIN32 -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I"E:\Qt\5.3.1-static-vs2013\include" -I"E:\Qt\5.3.1-static-vs2013\include\QtWidgets" -I"E:\Qt\5.3.1-static-vs2013\include\QtGui" -I"E:\Qt\5.3.1-static-vs2013\include\QtCore" -I"debug" -I"." -I"." -I"E:\Qt\5.3.1-static-vs2013\mkspecs\win32-msvc2013" -Fodebug\ @C:\Users\Kaven\AppData\Local\Temp\untitled_plugin_import.obj.1064.16.jom  

20     E:\Qt\5.3.1-static-vs2013\bin\moc.exe -DUNICODE -DWIN32 -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -D_MSC_VER=1800 -D_WIN32 -IE:/Qt/5.3.1-static-vs2013/mkspecs/win32-msvc2013 -IF:/WorkSpace/Qt/untitled -IE:/Qt/5.3.1-static-vs2013/include -IE:/Qt/5.3.1-static-vs2013/include/QtWidgets -IE:/Qt/5.3.1-static-vs2013/include/QtGui -IE:/Qt/5.3.1-static-vs2013/include/QtCore -I. ..\untitled\mainwindow.h -o debug\moc_mainwindow.cpp  

21 untitled_plugin_import.cpp  

22     cl -c -nologo -Zm200 -Zc:wchar_t -FS -Zi -MTd -GR -W3 -w34100 -w34189 -EHsc /Fddebug\untitled.pdb -DUNICODE -DWIN32 -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I"E:\Qt\5.3.1-static-vs2013\include" -I"E:\Qt\5.3.1-static-vs2013\include\QtWidgets" -I"E:\Qt\5.3.1-static-vs2013\include\QtGui" -I"E:\Qt\5.3.1-static-vs2013\include\QtCore" -I"debug" -I"." -I"." -I"E:\Qt\5.3.1-static-vs2013\mkspecs\win32-msvc2013" -Fodebug\ @C:\Users\Kaven\AppData\Local\Temp\mainwindow.obj.1064.47.jom  

23 mainwindow.cpp  

24     cl -c -nologo -Zm200 -Zc:wchar_t -FS -Zi -MTd -GR -W3 -w34100 -w34189 -EHsc /Fddebug\untitled.pdb -DUNICODE -DWIN32 -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I"E:\Qt\5.3.1-static-vs2013\include" -I"E:\Qt\5.3.1-static-vs2013\include\QtWidgets" -I"E:\Qt\5.3.1-static-vs2013\include\QtGui" -I"E:\Qt\5.3.1-static-vs2013\include\QtCore" -I"debug" -I"." -I"." -I"E:\Qt\5.3.1-static-vs2013\mkspecs\win32-msvc2013" -Fodebug\ @C:\Users\Kaven\AppData\Local\Temp\moc_mainwindow.obj.1064.328.jom  

25 moc_mainwindow.cpp  

26     echo 1 /* CREATEPROCESS_MANIFEST_RESOURCE_ID */ 24 /* RT_MANIFEST */ "debug\\untitled.exe.embed.manifest">debug\untitled.exe_manifest.rc  

27     if not exist debug\untitled.exe if exist debug\untitled.exe.embed.manifest del debug\untitled.exe.embed.manifest  

28     if exist debug\untitled.exe.embed.manifest copy /Y debug\untitled.exe.embed.manifest debug\untitled.exe_manifest.bak  

29     link /NOLOGO /DYNAMICBASE /NXCOMPAT /DEBUG /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST /MANIFESTFILE:debug\untitled.exe.embed.manifest /OUT:debug\untitled.exe @C:\Users\Kaven\AppData\Local\Temp\untitled.exe.1064.2496.jom  

30    正在创建库 debug\untitled.lib 和对象 debug\untitled.exp  

31     if exist debug\untitled.exe_manifest.bak fc /b debug\untitled.exe.embed.manifest debug\untitled.exe_manifest.bak >NUL || del debug\untitled.exe_manifest.bak  

32     if not exist debug\untitled.exe_manifest.bak rc.exe /fodebug\untitled.exe_manifest.res debug\untitled.exe_manifest.rc  

33 Microsoft (R) Windows (R) Resource Compiler Version 6.3.9600.16384  

34   

35 Copyright (C) Microsoft Corporation.  All rights reserved.  

36   

37   

38     if not exist debug\untitled.exe_manifest.bak link /NOLOGO /DYNAMICBASE /NXCOMPAT /DEBUG /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST /MANIFESTFILE:debug\untitled.exe.embed.manifest /OUT:debug\untitled.exe @C:\Users\Kaven\AppData\Local\Temp\untitled.exe.1064.2512.jom  

39    正在创建库 debug\untitled.lib 和对象 debug\untitled.exp  

40     if exist debug\untitled.exe_manifest.bak del debug\untitled.exe_manifest.bak  

41 08:16:34: 进程"F:\Qt_VS2013_Opengl_x86\Tools\QtCreator\bin\jom.exe"正常退出。  

42 08:16:34: Elapsed time: 00:18.  

08:16:16: 为项目untitled执行步骤 ...

08:16:16: 正在启动 "E:\Qt\5.3.1-static-vs2013\bin\qmake.exe" F:\WorkSpace\Qt\untitled\untitled.pro -r -spec win32-msvc2013

 

08:16:17: 进程"E:\Qt\5.3.1-static-vs2013\bin\qmake.exe"正常退出。

08:16:17: 正在启动 "F:\Qt_VS2013_Opengl_x86\Tools\QtCreator\bin\jom.exe" 

 

    F:\Qt_VS2013_Opengl_x86\Tools\QtCreator\bin\jom.exe -f Makefile.Debug

    E:\Qt\5.3.1-static-vs2013\bin\uic.exe ..\untitled\mainwindow.ui -o ui_mainwindow.h

    cl -c -nologo -Zm200 -Zc:wchar_t -FS -Zi -MTd -GR -W3 -w34100 -w34189 -EHsc /Fddebug\untitled.pdb -DUNICODE -DWIN32 -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I"E:\Qt\5.3.1-static-vs2013\include" -I"E:\Qt\5.3.1-static-vs2013\include\QtWidgets" -I"E:\Qt\5.3.1-static-vs2013\include\QtGui" -I"E:\Qt\5.3.1-static-vs2013\include\QtCore" -I"debug" -I"." -I"." -I"E:\Qt\5.3.1-static-vs2013\mkspecs\win32-msvc2013" -Fodebug\ @C:\Users\Kaven\AppData\Local\Temp\main.obj.1064.0.jom

main.cpp

    cl -c -nologo -Zm200 -Zc:wchar_t -FS -Zi -MTd -GR -W3 -w34100 -w34189 -EHsc /Fddebug\untitled.pdb -DUNICODE -DWIN32 -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I"E:\Qt\5.3.1-static-vs2013\include" -I"E:\Qt\5.3.1-static-vs2013\include\QtWidgets" -I"E:\Qt\5.3.1-static-vs2013\include\QtGui" -I"E:\Qt\5.3.1-static-vs2013\include\QtCore" -I"debug" -I"." -I"." -I"E:\Qt\5.3.1-static-vs2013\mkspecs\win32-msvc2013" -Fodebug\ @C:\Users\Kaven\AppData\Local\Temp\untitled_plugin_import.obj.1064.16.jom

    E:\Qt\5.3.1-static-vs2013\bin\moc.exe -DUNICODE -DWIN32 -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -D_MSC_VER=1800 -D_WIN32 -IE:/Qt/5.3.1-static-vs2013/mkspecs/win32-msvc2013 -IF:/WorkSpace/Qt/untitled -IE:/Qt/5.3.1-static-vs2013/include -IE:/Qt/5.3.1-static-vs2013/include/QtWidgets -IE:/Qt/5.3.1-static-vs2013/include/QtGui -IE:/Qt/5.3.1-static-vs2013/include/QtCore -I. ..\untitled\mainwindow.h -o debug\moc_mainwindow.cpp

untitled_plugin_import.cpp

    cl -c -nologo -Zm200 -Zc:wchar_t -FS -Zi -MTd -GR -W3 -w34100 -w34189 -EHsc /Fddebug\untitled.pdb -DUNICODE -DWIN32 -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I"E:\Qt\5.3.1-static-vs2013\include" -I"E:\Qt\5.3.1-static-vs2013\include\QtWidgets" -I"E:\Qt\5.3.1-static-vs2013\include\QtGui" -I"E:\Qt\5.3.1-static-vs2013\include\QtCore" -I"debug" -I"." -I"." -I"E:\Qt\5.3.1-static-vs2013\mkspecs\win32-msvc2013" -Fodebug\ @C:\Users\Kaven\AppData\Local\Temp\mainwindow.obj.1064.47.jom

mainwindow.cpp

    cl -c -nologo -Zm200 -Zc:wchar_t -FS -Zi -MTd -GR -W3 -w34100 -w34189 -EHsc /Fddebug\untitled.pdb -DUNICODE -DWIN32 -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I"E:\Qt\5.3.1-static-vs2013\include" -I"E:\Qt\5.3.1-static-vs2013\include\QtWidgets" -I"E:\Qt\5.3.1-static-vs2013\include\QtGui" -I"E:\Qt\5.3.1-static-vs2013\include\QtCore" -I"debug" -I"." -I"." -I"E:\Qt\5.3.1-static-vs2013\mkspecs\win32-msvc2013" -Fodebug\ @C:\Users\Kaven\AppData\Local\Temp\moc_mainwindow.obj.1064.328.jom

moc_mainwindow.cpp

    echo 1 /* CREATEPROCESS_MANIFEST_RESOURCE_ID */ 24 /* RT_MANIFEST */ "debug\\untitled.exe.embed.manifest">debug\untitled.exe_manifest.rc

    if not exist debug\untitled.exe if exist debug\untitled.exe.embed.manifest del debug\untitled.exe.embed.manifest

    if exist debug\untitled.exe.embed.manifest copy /Y debug\untitled.exe.embed.manifest debug\untitled.exe_manifest.bak

    link /NOLOGO /DYNAMICBASE /NXCOMPAT /DEBUG /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST /MANIFESTFILE:debug\untitled.exe.embed.manifest /OUT:debug\untitled.exe @C:\Users\Kaven\AppData\Local\Temp\untitled.exe.1064.2496.jom

   正在创建库 debug\untitled.lib 和对象 debug\untitled.exp

    if exist debug\untitled.exe_manifest.bak fc /b debug\untitled.exe.embed.manifest debug\untitled.exe_manifest.bak >NUL || del debug\untitled.exe_manifest.bak

    if not exist debug\untitled.exe_manifest.bak rc.exe /fodebug\untitled.exe_manifest.res debug\untitled.exe_manifest.rc

Microsoft (R) Windows (R) Resource Compiler Version 6.3.9600.16384

 

Copyright (C) Microsoft Corporation.  All rights reserved.

 

 

    if not exist debug\untitled.exe_manifest.bak link /NOLOGO /DYNAMICBASE /NXCOMPAT /DEBUG /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST /MANIFESTFILE:debug\untitled.exe.embed.manifest /OUT:debug\untitled.exe @C:\Users\Kaven\AppData\Local\Temp\untitled.exe.1064.2512.jom

   正在创建库 debug\untitled.lib 和对象 debug\untitled.exp

    if exist debug\untitled.exe_manifest.bak del debug\untitled.exe_manifest.bak

08:16:34: 进程"F:\Qt_VS2013_Opengl_x86\Tools\QtCreator\bin\jom.exe"正常退出。

08:16:34: Elapsed time: 00:18.


打开项目路径,内容如下: 

 

同样的源代码,编译后的结果比较:

先看debug版:

静态:大小只有82k

动态:21.5M

 

再看release版:

动态:23.5k


静态:9.33M

 

4个程序的功能都一样,就是弹出一个窗口:

但是你会发现将4个文件单独复制出来,双击运行,动态生成的是无法在未安装Qt链接库环境的电脑上运行的:

我虽然装了Qt,但是没有设置环境变量,所以动态编译的单文件(无论是debug版还是release版)还是无法运行,错误如下:

 

但是,静态编译的就不同了,在任何一台普通电脑上,直接就能运行,当然代价是执行文件变大:

 

 

14、最后,用VS2013编译源文件,需要安装一个Qt插件,

详见:http://blog.csdn.net/wwkaven/article/details/37648773

 

打开VS2013,添加静态库的目录:

 

 

导入刚才那个用Qt Creator创建的弹出窗口的工程:

 

导入时的输出信息:

 

[plain]view plaincopyprint?

43 --- (Import): Generating new project of untitled.pro file  

44 --- (qmake) : Using: e:\qt\5.3.1-static-vs2013\bin\qmake  

45 --- (qmake) : Working Directory: F:\WorkSpace\Qt\untitled  

46 --- (qmake) : Arguments: -tp vc "untitled.pro" -o "untitled.vcxproj" QMAKE_INCDIR_QT=$(QTDIR)\include QMAKE_LIBDIR=$(QTDIR)\lib QMAKE_MOC=$(QTDIR)\bin\moc.exe QMAKE_QMAKE=$(QTDIR)\bin\qmake.exe  

47   

48 --- (qmake) : Exit Code: 0  

49   

50 --- (Import): Added untitled.vcxproj to Solution  

51   

52 === Update uic steps ===  

53 Update uic step for mainwindow.ui.  

54   

55 === 1 uic steps updated. ===  

56   

57   

58 === Update rcc steps ===  

59   

60 === 0 rcc steps updated. ===  

--- (Import): Generating new project of untitled.pro file

--- (qmake) : Using: e:\qt\5.3.1-static-vs2013\bin\qmake

--- (qmake) : Working Directory: F:\WorkSpace\Qt\untitled

--- (qmake) : Arguments: -tp vc "untitled.pro" -o "untitled.vcxproj" QMAKE_INCDIR_QT=$(QTDIR)\include QMAKE_LIBDIR=$(QTDIR)\lib QMAKE_MOC=$(QTDIR)\bin\moc.exe QMAKE_QMAKE=$(QTDIR)\bin\qmake.exe

 

--- (qmake) : Exit Code: 0

 

--- (Import): Added untitled.vcxproj to Solution

 

=== Update uic steps ===

Update uic step for mainwindow.ui.

 

=== 1 uic steps updated. ===

 

 

=== Update rcc steps ===

 

=== 0 rcc steps updated. ===

 


Ctrl+F5,成功弹出一个窗口: 

 

[plain]view plaincopyprint?

61 还原 NuGet 程序包时出错: System.ArgumentException: 路径的形式不合法。  

62    在 System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)  

63    在 System.IO.Path.GetDirectoryName(String path)  

64    在 NuGet.VisualStudio.VsUtility.GetNuGetSolutionFolder(Solution solution)  

65    在 NuGet.VsEvents.PackageRestorer.UsingOldPackageRestore(Solution solution)  

66    在 NuGet.VsEvents.PackageRestorer.BuildEvents_OnBuildBegin(vsBuildScope Scope, vsBuildAction Action)。  

67 1>------ 已启动生成:  项目: untitled, 配置: Debug Win32 ------  

68 1>  Moc'ing mainwindow.h...  

69 1>  Uic'ing mainwindow.ui...  

70 1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppBuild.targets(935,5): warning MSB8027: Two or more files with the name of moc_mainwindow.cpp will produce outputs to the same location. This can lead to an incorrect build result.  The files involved are GeneratedFiles\Debug\moc_mainwindow.cpp, GeneratedFiles\Release\moc_mainwindow.cpp.  

71 1>  moc_mainwindow.cpp  

72 1>  main.cpp  

73 1>  mainwindow.cpp  

74 1>  untitled_plugin_import.cpp  

75 1>  正在生成代码...  

76 1>     正在创建库 debug\\untitled.lib 和对象 debug\\untitled.exp  

77 1>  untitled.vcxproj -> F:\WorkSpace\Qt\untitled\debug\untitled.exe  

78 ========== 生成:  成功 个,失败 个,最新 个,跳过 个 ==========  

还原 NuGet 程序包时出错: System.ArgumentException: 路径的形式不合法。

   在 System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)

   在 System.IO.Path.GetDirectoryName(String path)

   在 NuGet.VisualStudio.VsUtility.GetNuGetSolutionFolder(Solution solution)

   在 NuGet.VsEvents.PackageRestorer.UsingOldPackageRestore(Solution solution)

   在 NuGet.VsEvents.PackageRestorer.BuildEvents_OnBuildBegin(vsBuildScope Scope, vsBuildAction Action)

1>------ 已启动生成:  项目: untitled, 配置: Debug Win32 ------

1>  Moc'ing mainwindow.h...

1>  Uic'ing mainwindow.ui...

1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppBuild.targets(935,5): warning MSB8027: Two or more files with the name of moc_mainwindow.cpp will produce outputs to the same location. This can lead to an incorrect build result.  The files involved are GeneratedFiles\Debug\moc_mainwindow.cpp, GeneratedFiles\Release\moc_mainwindow.cpp.

1>  moc_mainwindow.cpp

1>  main.cpp

1>  mainwindow.cpp

1>  untitled_plugin_import.cpp

1>  正在生成代码...

1>     正在创建库 debug\\untitled.lib 和对象 debug\\untitled.exp

1>  untitled.vcxproj -> F:\WorkSpace\Qt\untitled\debug\untitled.exe

========== 生成:  成功 个,失败 个,最新 个,跳过 个 ==========

 

 

 

 

OK,这篇文章终于写完了,稍后我会将编译好的静态库传至网盘,有需要的可以自行下载。

 

Qt 5.3.1 静态链接库:(保存链接图片,改扩展名为.7z,即为下载地址)

 

VS2013 + QT5.7.0静态编译(千呼万唤始出来)

转载请注明原文链接! 为了解决的问题:QT动态编译得到的exe可执行文件,只能在本机运行。若直接复制到一台未安装QT的计算机上,肯定是无法运行的。 解决方法一:请参照我的另一篇博客QT程序 如...

Qt5.5.0 vs2013 64位编译

如题,需要在vs201364位下进行Qt5.5.0的编译工作。参考网上的方法,自己简单整理了下,在此感谢作者phil2036。 http://blog.csdn.net/phil2036/arti...
  • ljt_229
  • ljt_229
  • 2016年01月11日 14:14
  • 1218

VS2013编译Qt5.2.1 32位静态库debug-and-release版及结果分享

1. 下载zip源码,我下载的是qt-everywhere-opensource-src-5.2.1.zip这个文件。 2.安装python 3.解压缩qt-everywhere-open...

Windows下使用VS2013编译Qt5.6源码

用过Qt的QHBoxLayout,QVBoxLayout再看flex布局有很多相似之处,特别要注意的是flex属性是flex-grow, flex-shrink 和 flex-basis的简写,默认值...
  • tujiaw
  • tujiaw
  • 2017年02月27日 20:23
  • 1239

VS编译Qt源码

Qt常用的编译方式有两种,一种是使用mingw编译器,另外一种是使用vs编译器进行编译,本文主要介绍使用vs编译器进行编译。 1、编译选项     以下编译选项为常用编译选项,可添加在编译...

VS2013 + QT5.7.0静态编译(使用MT、MTd模式)

VS2013&Qt 设置MT模式编译 VS2013编译Qt静态库

vs2013 静态编译Qt和配置方法

Qt 5.3.2 静态编译和在VS里的配置方法

Qt 5.6.1 + vs2013 加载自己编写的静态链接库

一、编译自己编写的静态链接库博主默认大家已经将 VS2013 与 Qt 配置成功,没有配置成功的,自行在网上搜索1、创建 Qt 新项目,如下2、创建完项目后,右键你的项目属性,如下将配置类型更改为 静...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Qt 信号槽机制与事件机制四 提升篇

标 题: 【翻译】Qt内部机制及逆向 作 者: zouzhin 时 间: 2011-04-30,15:51:44 链 接: http://bbs.pediy.com/showthread.php...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用vs2013编译QT5.3静态库
举报原因:
原因补充:

(最多只允许输入30个字)