qt静态库编译
Ⅰ qt 5添加 windows 静态库
qt中添加windows vs 生成的静态库,需要注意:
qt使用的编译器版本要和vs版本,操作系统位数要对应。
例如:用 vs2015 x86生成的了release 和debug两种静态库
相应的QT也要配置vs2015 32 编译器。
把之前vs 生成的静态库的头文件和库准备好
打开qt 中打卡 工程 .pro文件 右键选择 添加库选择外部库
这样我们release和debug版的静态库都添加近工程了。
如果之前已经生成过编译后的文件夹
再次生成时可能遇到 error LNK2019: 无法解析的外部符号 之类的错误信息。
这个问题只要把上面的文件夹删除,从新编译即可。
Ⅱ Qt 中如何使用动态库.so文件或者静态库.a文件
用静态的编译好程序,把动态的放到程序运行时的目录应该就会自动调用的
Ⅲ 使用Qt静态库为什么运行出错
因为链接的是qt的动态库,在没有qt动态库的系统上肯定是运行不了的。
有两种方法,
一种是静态编译,但会让运行文件变大。
二种就是把动态库和程序一起打包出去,路径设置
Ⅳ VS2015静态编译QT5.6,有人成功过吗
QT 5.5.1 VS2015 静态编译
编译参数如下:
configure -confirm-license -opensource -platform win32-msvc2015 -debug-and-release -static -prefix "c:\Qt\5.5.1-static-vs2015" -make libs -nomake tests -nomake examples
我的工程用到了这些库
qtpcred.lib
Ws2_32.lib
Qt5Cored.lib
qtharfbuzzngd.lib
opengl32.lib
Qt5Guid.lib
d3d9.lib
d3dx9.lib
ddraw.lib
D3D11.lib
dxguid.lib
Qt5Widgetsd.lib
Qt5WinExtrasd.lib
imm32.lib
qwindowsd.lib
winmm.lib
qtfreetyped.lib
Qt5PlatformSupportd.lib
Ⅳ QT交叉编译时怎么添加静态库,急!!!
INCPATH = -I../EmbedSky/qt-4.5/__install/arm/mkspecs/default -I. -I../EmbedSky/qt-4.5/__install/arm/include/QtCore -I../EmbedSky/qt-4.5/__install/arm/include/QtNetwork -I../EmbedSky/qt-4.5/__install/arm/include/QtGui -I../EmbedSky/qt-4.5/__install/arm/include -I. -I. -I.
在这里增加你编译的静态库。。。可以试试,我也是新手
Ⅵ 请哪位来解释一下Qt静态编译和动态编译的区别
静态编译与动态编译的区别:
1、动态编译的可执行文件需要附带一个的动态链接库,在执行时,需要调用其对应动态链接库中的命令。
所以其优点一方面是缩小了执行文件本身的体积,另一方面是加快了编译速度,节省了系统资源。
缺点一是哪怕是很简单的程序,只用到了链接库中的一两条命令,也需要附带一个相对庞大的链接库;二是如果其他计算机上没有安装对应的运行库,则用动态编译的可执行文件就不能运行。
Ⅶ Qt下如何编译库
一般分为
动态库
和
静态库
,方法分别如下:
一.
静态库的生成
1.
测试目录:
lib
2.
源码文件名:
mywindow.h,
mywindow.cpp
3.
编写项目文件:
mywindow.pro
注意两点:
TEMPLATE
=
lib
CONFIG
+=
staticlib
4.
生成Makefile:
qmake
mywindow.pro
5.
编译生成静态库libmywindow.a
make
二.
静态库的使用
1.
测试目录:
test
2.
将mywindow.h与libmywindow.a拷贝至test目录下
3.
编写main.cpp,
包含头文件mywindow.h,
并调用MyWindow类
4.
编写项目文件:
test.pro
注意加上库路径与库文件名:
LIBS
+=
-L
./
-lmywindow
5.
生成Makefile:
qmake
test.pro
6.
编译:
make
7.
运行:
./test
三.
动态库的生成
动态库编译基本和静态库类似,需要将上述将要进行编译的项目文件.pro中下面这行去掉
CONFIG
+=
staticlib
按上述操作编译完后就可以得到以lib开头并且.so*
结尾动态库文件,一般有多个。
Ⅷ Qt Creator 怎样设置才能实现静态编译
qt默认的编译方式是动态编译的,但是有时候编写的程序要发布出去,带很多动态库文件是很繁琐的,此时就需要静态编译程序,qt要实现静态编译必须库文件也是静态编译的,可以用这个命令编译静态库:
1.将c:\qt\2010.05\qt\mkspecs\win32-g++\qmake.conf文件中的qmake_lflags
=
-enable-stdcall-fixup
-wl,-enable-auto-import
-wl,-enable-runtime-pseudo-reloc
改为
qmake_lflags
=
-static
-enable-stdcall-fixup
-wl,-enable-auto-import
-wl,-enable-runtime-pseudo-reloc
2.在开始菜单里找到qt
command
prompt并运行,输入命令:
configure
-static
-debug-and-release
-no-exceptions
-l
"c:\qt\2010.05\qt\include"
-l
"c:\qt\2010.05\qt\lib"
-l指定一下路径,防止用到vc的头文
Ⅸ qt静态库编译,动态编译和静态编译可共存吗
通常不需要在系统变量中加入Qt库的位置的。Qt Creator可以自动扫描到系统中存在的Qt库版本,如果扫描不到,可以通过Creator的 Tool->Options->Qt4中添加静态库的路径。而QDevelop虽然没有那么智能,但是可以手动指定INCLUDE和LIB的位置。或许,这根本就不是一个问题。如果怀念动态库,或者在产品发布之前并不想体验静态编译那种蜗牛爬一般的速度,可以在pro文件中指定CONFIG += shared,而且,要记得在Project中选择相应的版本。
Ⅹ Qt Creator 怎样设置才能实现静态编译
Qt默认的编译方式是动态编译的,但是有时候你编写的程序要发布出去,带很多动态库文件是很繁琐的,此时就需要静态编译你的程序,Qt要实现静态编译必须库文件也是静态编译的,可以用这个命令编译静态库:
1.将C:\Qt\2010.05\qt\mkspecs\win32-g++文件中的QMAKE_LFLAGS = -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc
改为
QMAKE_LFLAGS = -static -enable-stdcall-fixup -Wl,-enable-
auto-import -Wl,-enable-runtime-pseudo-reloc
2.在开始菜单里找到Qt Command Prompt并运行,输入命令: configure -static -debug-and-release -no-exceptions -L "C:\Qt\2010.05\qt\include" -L "C:\Qt\2010.05\qt\lib"
-L指定一下路径,防止用到vc的头文件
选择开源:O;选择license:y;
3.上一条命令运行成功后再输入命令: mingw32-make sub-src
等1 ~3 小时可能就运行完了 完成后就ok了。。。