当前位置:首页 » 编程软件 » qt静态编译dll

qt静态编译dll

发布时间: 2022-05-16 14:45:53

Ⅰ QT编译mysql驱动为啥没有qsqlmysqld4.dll这个文件产生压根就不产生.dll文件就产生了一个.a文件

首先把你工程目录下的所有makefile 、makefilerelease 、.pro.user等之前的编译数据删除掉
打开你的.pro文件,找到这样一句:
TEMPLATE = ...
把他改成:
TEMPLATE = lib
再重新编译试试

Ⅱ 用configure.exe 把 QT 编译成静态库后 就不能生成 DLL了,只能生成 .a,是怎么回事啊

重新改配置为shared。你既要静态又要动态,不矛盾吗,怎么可能相容和工作。

Ⅲ 群内有人用mingw编译的静态编译库成功编译过qt+mysql的程序吗

mingw编译出来的静态库后缀名为.a,编译出来的动态库的导入库后缀名为.dll.a,而在windows下后缀名为.lib的库可能是静态库也可能是动态库的导入库。

mingw编译出来的动态库的导入库可以直接在vc中直接使用,例如

#pragma comment(lib, "libx264.dll.a")

这样你就不需要生成一个.lib后缀的动态库的导入库了,网上也有如何从.dll生成.lib的方法。

如果链接了动态库的导入库libpthread.dll.a,你发布的应用程序就要带上pthread的dll。
使用静态库的好处是发布的应用程序组件模块里不需要带上相关的dll,如果要使用mingw编译出来的静态库,可以如下:

#pragma comment(lib, "libx264.a")

但是仅仅链接这么一个静态库是不够的,你还需要链接

libgcc.a

libmingwex.a

你可能还需要链接libmsvcrt.a

否则会报一堆错误:error LNK2001: 无法解析的外部符号

上面的这些库在C:\MinGW\lib目录或子目录下面可以找到。

链接这些库的原因是mingw使用的gcc编译器和vc编译器之间存在差异

Ⅳ Qt静态调用dll为什么不成功呢

undefinedreferenceto'myQtAdd(int,int)'错误。
LIBS+=-LC:/Users/Administrator/Desktop/qtDll/-IaddDll这个-I应该是-l不行,我改成-l还是那个错误
直接写成LIBS+=C:/Users/Administrator/Desktop/qtDll/ADD.DLL看看
你的库中有这个方法吗?而且我看你的.h文件也没加到工程文件里面来啊。
有这个方法,动态调用成功了。
我把头文件加进工程
QT+=coregui
LIBS+=C:/Users/Administrator/Desktop/qtDll/addDll.lib
TARGET=qtDll
CONFIG+=console
CONFIG-=app_bundle
TEMPLATE=app
SOURCES+=main.cppHEADERS+=\addDll.h
对了,我用VC6创建的dll,是个动态链接库,把头文件和lib,dll放在工程目录,又把dll也放在了debug目录,不知道是不是放错了。
dll放错位置,只是会让你运行不了,编译是不会报错的。你那个库能行么?你用VC调用看看。或者你用Qt创建个动态库,试试能不能行。
#include<iostream
#include"addDll.h"

Ⅳ 求Qt5.10 for msvc2015 mysql静态编译版本的驱动

楼主可以通过查看依赖库的软件(比如windows depends)把所有依赖的DLL都打包起来
和你的EXE一起拷贝到别的电脑上就能直接跑 了

Ⅵ 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了。。。

Ⅶ qt静态编译后怎样打包exe文件

一般我都是用动态编译,把需要的dll和exe放到一个文件夹下就可以。你静态编译后应该就能直接打开exe使用。如果不能运行,根据提示,找到对应的系统dll放到一起试试。 你先试一下有问题可以 追问

Ⅷ Qt Creator怎么静态编译C++程序

如果你说的是Qt程序的话,静态编译就得自行从源码开始编译Qt静态库,官网预编译的版本是不包含静态库的。这个很复杂,请参考qt-everywhere-opensource 中提供的编译帮助。注意如果使用miongw的话,gcc版本最好不要是4.6.2。这个版本比较特殊,但是它是mingw官方版的最新打包版本。
如果你说的是非qt库依赖的话,有两种mingw和vs,前者有部分发行版默认去除了dll依赖,直接连接的静态库,后者非常不推荐使用静态库,毕竟它加载的是系统常用dll,基本上所有系统都是推荐安装的运行时环境,用静态库吃力不讨好。

Ⅸ 你好,我现在用qt中要使用了一个vs2010编译的.lib静态库。

对于C语言而言,用于连接dll的连接lib是可以通用的,dll也是可以通用的。但是静态库目前而言并不是通用的,一般的处理方式是编译成dll,然后生成连接lib(a)库,引入项目,或者使用libtdl动态加载dll文件。
静态库不可通用的原因是,基础库相差太多,objmp甚至都无法识别使用vc默认选项编译出啦的obj文件格式。另外reimp不是用于这个用途的,是为dll的连接lib(a)文件提供转换的。

对于C++而言,所有二进制代码都是不可通用的,毕竟名称修饰都相差甚远。

Ⅹ Qt 如何编译成可执行程序,像VC的静态编译,可以在脱离QT的环境中运行

qt
如何编译成可执行程序,像vc的静态编译,可以在脱离qt...
开源版本
不允许静态编译
可以将dll打包,就能再其他的机器上运行了.
榵彨廀峓朢桸潂椺壱检挰洏煠愝噐

热点内容
cf服务器云南一区云空间 发布:2024-05-02 14:18:24 浏览:752
如何破解excel2007密码 发布:2024-05-02 14:18:23 浏览:993
ios数据上传服务器 发布:2024-05-02 13:39:27 浏览:351
Php面向对象模式 发布:2024-05-02 13:33:32 浏览:80
安卓手机软件如何快速打开 发布:2024-05-02 13:25:16 浏览:963
安卓网页图片不显示怎么办 发布:2024-05-02 13:16:00 浏览:673
虚拟机搭建linux 发布:2024-05-02 13:02:48 浏览:186
哈弗f7配置怎么使用 发布:2024-05-02 12:53:14 浏览:575
psv重新构建数据库 发布:2024-05-02 12:43:53 浏览:792
农行对公密码器的凭证号码在哪里 发布:2024-05-02 12:38:55 浏览:890