在Linux下交叉编译生成windows程序

Linux环境使用Ubuntu,原理是利用mingw32,交叉编译windows程序,以便在windows下运行。

具体步骤如下:

一、安装mingw32

1、修改 sources.list

sudo vim /etc/apt/sources.list

在文件底部新加一行:

deb http://us.archive.ubuntu.com/ubuntu trusty main universe

2、更新软件包

sudo apt update

3、安装mingw32

sudo apt-get install mingw32

4、验证安装结果

我这边安装完是i586-mingw32msvc-gcc,有的人装完是i486-mingw32-gcc,不知道装完是什么编译器的,可以用find命令搜索mingw32关键字看下,也可以直接直接输入itab一下,不过结果会比较多。

i586-mingw32msvc-gcc -v
使用内建 specs。
目标:i586-mingw32msvc
配置为:/build/buildd/mingw32-4.2.1.dfsg/build_dir/src/gcc-4.2.1-2-dfsg/configure -v --prefix=/usr --target=i586-mingw32msvc --enable-languages=c,c++ --enable-threads --enable-sjlj-exceptions --disable-multilib --enable-version-specific-runtime-libs
线程模型:win32
gcc version 4.2.1-sjlj (mingw32-2)

安装成功

二、编译windows程序

新建代码test.c:

#include <stdio.h>

int main()
{
	printf("windows application\n");

    // 以_WIN32宏判断,以便Linux下也可以编译通过
	#ifdef _WIN32
    system("pause");
    #endif

	return 0;
}

编译:

i586-mingw32msvc-gcc test.c

即会生成windows下可运行的a.exe程序。

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
以下是在 Windows 上使用 GoLand 进行交叉编译,在 CentOS 上运行 Go 程序的详细步骤: 1. 首先,在 Windows 上安装 GoLand 和 Go 环境,并确保 GoLand 可以正常使用。 2. 在 GoLand 中创建一个新的 Go 项目,并在项目中编写您的 Go 代码。 3. 在 GoLand 中打开终端,输入以下命令,安装交叉编译工具链: ``` go get golang.org/x/sys/windows go get github.com/mattn/go-sqlite3 GOOS=linux GOARCH=amd64 go get github.com/mattn/go-sqlite3 ``` 这些命令将安装必要的工具链和库,以便在 Windows编译 Linux/Unix 系统下的可执行文件。 4. 在 GoLand 中打开项目设置,选择左侧的“Go”选项,然后选择“Go Build Tags”选项卡。在这里,您需要添加一个标记来指定您要编译的目标操作系统和架构。例如,如果您要在 CentOS 7 上运行您的程序,您需要添加以下标记: ``` linux amd64 ``` 5. 在 GoLand 中打开终端,输入以下命令,以交叉编译您的程序: ``` go build -tags="linux amd64" -o myprogram-linux-amd64 ``` 这将在 Windows编译您的程序,并将可执行文件输出到当前目录下的“myprogram-linux-amd64”文件中。这个文件是在 CentOS 上运行的二进制文件。 6. 在 CentOS 上,将“myprogram-linux-amd64”文件复制到您的服务器上,并运行以下命令,以确保它具有可执行权限: ``` chmod +x myprogram-linux-amd64 ``` 7. 最后,在 CentOS 上运行您的程序: ``` ./myprogram-linux-amd64 ``` 如果一切顺利,您的程序应该成功运行,并输出您期望的结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值