windows上编译linux程序

前言

有些项目创建之初,(仅考虑在linux上运行)不考虑在windows原生编译,所以以没有采用跨平台的API进行开发。

后续想要将项目从linux上,移植到windows上运行。要么是重写不能跨平台的代码;要么是在cygwin这样的环境下编译。前者,我做过一遍。后者,本次来尝试下。


Cygwin、MinGW和MSYS2的区别

我们首先看下,在windows上编译linux的源码,生成windows上可执行文件,有哪些工具可以使用。


MSYS2的安装和配置

上面比较下来,感觉MSYS2会好用些。

  1. 首先是安装MSYS2。下载官网的安装包,安装在默认路径即可:MSYS2

  2. Windows Terminal中扩展为支持 MSYS2 shell,参考Terminals - MSYS2

  3. MSYS2提供了不同的环境/子系统,您首先必须决定使用哪个环境/子系统。环境之间的差异主要体现在环境变量、默认编译器/链接器、体系结构、使用的系统库等方面。如果您不确定,请使用 UCRT64。

  4. MSYS2使用pacman包管理器安装软件,见Package Management - MSYS2。下面来安装写必要的软件。

    pacman git vim cmake make gcc openssl-dev zlib-devel
    

示例

环境搭建好了,跑个示例验证下。

GitHub - da1234cao/wrk2: Port wrk2 to windows 是个压力测试工具。原来仅在windows上运行。

现在,将代码在MSYS2中编译。可编译,可运行。但请求的平均时间统计不对。lua代码被我修了下,就休不对了。。。有空再调吧。lua不咋会。

git clone [email protected]:da1234cao/wrk2.git
make build && cd build && cmake ..
make

# 提供了打包,但是install taget 的时候,包里的wrk没有exe后缀。。
make package

猜你喜欢

转载自blog.csdn.net/sinat_38816924/article/details/131215829