windows下使用MingW-w64 编译 Qt4.8.6源码,生成64位QT库

1. 安装mingw-w64

具体安装教程,可以参考:https://blog.csdn.net/wo198711203217/article/details/105032057
安装时记得选择x86_64的。

2. 下载QT4.8.6源码包

官网下载地址:http://download.qt.io/archive/qt/
在里边找到4.8.6对应的源码包。

我这里已经下载好了,链接:https://pan.baidu.com/s/1JK_WIBF7_vEiKEhYqjzqXQ
提取码:3d8e

3. 解压到某个盘的根目录下

我这里解压到C:
在这里插入图片描述

4. 设置QT相关环境变量

创建目录:C:\qt\qt4.8.6_x64,用来存放编译后的QT库。
set QTDIR=C:\qt\qt4.8.6_x64

PS: 放在C盘,我刚开始放在D盘有问题。

5. 配置

使用cmd切换到目录C:\qt-everywhere-opensource-src-4.8.6
执行如下命令:
configure -prefix C:\qt\qt4.8.6_x64 -debug-and-release -platform win32-g++ -shared -fast -opensource -no-exceptions -no-dsp -no-vcproj -no-qt3support -no-accessibility -no-rtti -no-gif -qt-libpng -qt-libjpeg -no-libmng -no-libtiff -no-webkit -no-openssl -no-dbus -no-phonon -no-phonon-backend -no-multimedia -no-audio-backend -no-declarative -no-script -no-scripttools -no-style-plastique -no-style-cleanlooks -no-style-motif -no-style-cde -qt-style-windowsxp -qt-style-windowsvista -nomake examples -nomake docs -nomake demos

PS: -prefix 指定QT库的安装路径。
在这里插入图片描述
在这里插入图片描述

6. 编译

确保当前的mingw32-make 和 g++可执行文件的确来自你的MinGW-w64目录,尤其是当系统中有多个MinGW版本时,可使用where ming32-make 和 where g++查看ming32-make 和 g++的路径。

在进行构建之前,需要将源码包下的mkspecs目录拷贝到QT安装目录下(我这里是C:\qt\qt4.8.6_x64)

执行命令mingw32-make开始编译源码:
在这里插入图片描述
接着执行命令mingw32-make install 将编译后的库安装到-prefix指定的目录下。
在这里插入图片描述

使用 MinGW-w64 工具链在 Windows编译 Linux 程序,需要使用 CGO 编译器。CGO 是 Go 语言的 C 语言调用接口,它可以让 Go 语言调用 C 语言的函数和。通过 CGO 编译器,我们可以在 Windows 上编写 Go 代码,然后使用 MinGW-w64 工具链编译 C 语言代码,最后将 Go 代码和 C 代码链接起来生成 Linux 可执行文件。 具体操作步骤如下: 1. 下载并安装 MinGW-w64 工具链,下载地址:https://sourceforge.net/projects/mingw-w64/ 2. 配置 MinGW-w64 工具链的环境变量,将 MinGW-w64 的 bin 目录添加到系统 PATH 环境变量中。 3. 在 Go 代码中使用 CGO,例如: ``` package main /* #include <stdio.h> void sayHello() { printf("Hello, World!\n"); } */ import "C" func main() { C.sayHello() } ``` 这个例子演示了如何在 Go 代码中调用 C 语言的函数。在 Go 代码中,我们需要使用 `import "C"` 导入 C 语言的和函数。 4. 编译 C 语言代码,生成静态文件,例如: ``` x86_64-w64-mingw32-gcc -c -o mylib.o mylib.c x86_64-w64-mingw32-ar rcs mylib.a mylib.o ``` 这个命令会生成静态文件 `mylib.a`,它包含了 C 语言代码的编译结果。 5. 编译 Go 代码,使用 CGO 编译器链接 C 语言的静态文件,例如: ``` CGO_ENABLED=1 GOOS=linux GOARCH=amd64 CC=x86_64-w64-mingw32-gcc go build -o myprogram main.go ``` 这个命令会生成 Linux 平台的可执行文件 `myprogram`,它包含了 Go 代码和 C 语言代码的链接结果。 6. 将生成的 Linux 可执行文件从 Windows 复制到 Linux 环境中运行,例如: ``` scp myprogram user@server:/path/to/myprogram ssh user@server "/path/to/myprogram" ``` 其中,`user` 是 Linux 系统的用户名,`server` 是 Linux 系统的 IP 地址或域名,`/path/to/myprogram` 是 Linux 系统中的路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

历史五千年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值