当前位置:首页 » 编程软件 » gcc编译dll

gcc编译dll

发布时间: 2025-06-25 15:28:42

㈠ Qt Creator里如何设置gcc编译的优化等级

不是release优化的问题。如果是直接运行的话,mingwm10.dll、libgcc_s_dw2-1.dll、qtcore4.dll、qtgui4.dll,还有相应的你用到的库都要放在运行目录下,用dependency walker可以看到dll依赖情况。
然后用到的插件比如qmltooling、imageformats等目录也需要拷到运行目录中,这个用工具看不到依赖,只能全拷然后用排除法,有经验之后代码里哪些用到了就知道了。

出现runtime library错误的最大可能性就是运行目录下的插件不完整。

另外有一种解决方法就是把qt改成静态链接,编译进exe,商业版允许这样做,lgpl版的话如果不是自用就有法律风险。

㈡ cmake:让mingw(gcc)生成MSVC可用的dll(.lib)----mark亲测有效

minggw(gcc)编译出来的动态库(DLL),默认是没有MSVC连接动态库所需要的lib文件的。

关于MSVC的DLL和LIB的作用和区别,请参考这篇博文,讲得很透彻了–>《DLL和LIB的区别》

那么如果VC要链接gcc生成的DLL,却没有lib文件怎么办?
对于这个问题网上都有解决的办法,这篇文章讲到一些办法,可供收藏《VC6 调用GCC的DLL》,对于没有提供lib的DLL都可以用这篇文章提供的办法试试。

如果项目中不同的模块用不同的编译器编译,这时如果gcc编译的DLL没有import library(lib文件),可以通过cmake设置选项来解决。

CMAKE有一个GNUtoMS参数就是解决这个问题的。

GNUtoMS
Convert GNU import library (.dll.a) to MS format (.lib).

When linking a shared library or executable that exports symbols using GNU tools on Windows (MinGW/MSYS) with Visual Studio installed convert the import library (.dll.a) from GNU to MS format (.lib). Both import libraries will be installed by install(TARGETS) and exported by install(EXPORT) and export() to be linked by applications with either GNU- or MS-compatible tools.

CMAKE_GNUtoMS
Convert GNU import libraries (.dll.a) to MS format (.lib).

This variable is used to initialize the GNUtoMS property on targets when they are created. See that target property for additional information.(这个变量用来初始化GNUtoMS属性)

在用cmake生成Makefile时,设置GNUtoMS就可以解决这个问题。有两种途径:

shell命令行方式
如下在命令行中-D定义一个为bool类型的CMAKE_GNUtoMS参数为ON,就指示在编译时对dll生成.lib的import library

cmake %source_folder% -G “Eclipse CDT4 - MinGW Makefiles” -DCMAKE_GNUtoMS:BOOL=ON

cmak-gui
如下在cmake-gui界面中将CMAKE_GNUtoMS选项勾选,再点<generate>按钮生成Makefile

这里写图片描述

然后执行make编译项目的过程中,生成dll时会输出(前提是你安装了VC编译器)

Setting environment for using Microsoft Visual Studio 2010 x64 tools.

Microsoft (R) Library Manager Version 10.00.30319.01

Copyright (C) Microsoft Corporation. All rights reserved.

正在创建库 libturbojpeg.lib 和对象 libturbojpeg.exp

编译完成后,你就会发现所有的dll都有对应的lib文件了。
link: http://www.voidcn.com/article/p-tlmilzjf-ca.html

㈢ 如何在Windows下安装使用gcc编译器

1、 先去Cygwin网站下载一个安装文件(setup.exe),这个文件体积很小,只有不到300KB。然后双击运行setup.exe。因为是第一次安装,所以必须选择从Internet在线安装,也可以先从Internet下载安装文件,然后再手动安装。我选择后者,因为这样,以后我可以在不联网的时候也能安装。
2、接下来点击“下一步”,然后从一系列服务器列表中选择一个你认为网速最快的一个作为下载服务器。接着点击“下一步”就会出现如下图所示的界面,用来选择你想安装的程序。
如果你不做任何修改,将默认安装Cygwin运行所需的最少的程序和组件。不过,gcc编译器不在默认安装程序之列,所以你必须选择安装gcc。具体是, 在上述窗口中的列表中展开Devel目录,找到gcc-g++一项,点击“Default”,它就变成了“Install”,同时由于程序之间的依赖性 gcc-core条目的“Default”,也变成了“Install”。
此外,为了使gcc能正确编译源文件,还必须安装win32api库,否则会编译出错。因此,你需要在上述窗口中展开Libs目录,找到win32api一项,将它点成“Install”。
3. 接下来就是耐心等待程序去下载所需的安装文件了。一旦下载完毕,你再次运行setup.exe,先选择你将要把Cygwin安装在什么地方,然后再选择你 刚才所下载的那些安装文件所在的硬盘位置。接着你还需要再次选择安装gcc和win32api。这样,你就可以开始安装了。
4. 安装完成后,运行Cygwin。在窗口中敲入gcc就可以直接用gcc来编译了。编译链接生成的可执行文件,系统会自动加上.exe后缀,在Cygwin 环境中可以直接运行。但如果脱离Cygwin环境,而在MS DOS下运行,则会出错。解决办法很简单,那就是将cygwin1.dll文件拷贝到C:\WINDOWS目录下即可。

热点内容
买压缩机 发布:2025-06-26 02:42:15 浏览:877
买编程程序 发布:2025-06-26 02:33:00 浏览:517
加减法混合运算法则 发布:2025-06-26 02:32:25 浏览:829
加翻算法 发布:2025-06-26 02:27:45 浏览:832
c语言储存文件 发布:2025-06-26 02:19:52 浏览:499
10电脑缓存怎么清理 发布:2025-06-26 02:01:39 浏览:829
正的数控编程 发布:2025-06-26 01:59:19 浏览:689
nist数据库怎么用 发布:2025-06-26 01:59:11 浏览:57
jsp中数据库连接 发布:2025-06-26 01:58:28 浏览:204
fastcgi与phpfpm 发布:2025-06-26 01:56:12 浏览:289