windows上编译linux程序

这篇具有很好参考价值的文章主要介绍了windows上编译linux程序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

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

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


Cygwin、MinGW和MSYS2的区别

  • Cygwin 和MinGW 的区别与联系是怎样的? - 知乎
  • windows - What is the difference between Cygwin and MinGW? - Stack Overflow
  • linux - Difference between GNUWin32 and cygwin - Stack Overflow
  • MSYS2 介绍与使用_qq_36525177的博客-CSDN博客

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

  • Cygwin 是GNU和开源工具的大集合,它们提供类似于 Windows 上 Linux 发行版的功能。cygwin1.DLL是一个提供大量 POSIX API 功能的 DLL。安装过程,可以参考:Windows下Cygwin安装使用教程_Linux教程_Linux公社-Linux系统门户网站。(大概原理是,当程序访问一个linux接口的时候,替换使用cygwin1.DLL中的功能;而cygwin1.DLL中调用的是win api。)

  • MinGW-w64 是Mingw 原始项目的一个进步,支持编译生成64位程序。Mingw-w64包括对GCC、GNU Binutils的Windows版本的移植。安装过程可参考:MinGW-w64 C/C++编译器下载和安装_mingw64_石凌风SLF的博客-CSDN博客(移植的主要是GCC,make,GDB这套编译工具)

  • GnuWin32 Summary 是提供了 Win32版本的 GNU 工具。但移植似乎有些过时了:GnuWin32 (GNU Emacs FAQ For MS Windows)。安装可以参考: Windows下使用Linux命令 - GNUWin32 安装_getgnuwin32_Esiia的博客-CSDN博客 (主要是可以在windows下使用linux中的一些命令和库)

  • What is MSYS2? - MSYS2 是一个工具和库的集合,为您提供了一个易于使用的环境,用于构建、安装和运行本地 Windows 软件。unixy 工具直接基于 Cygwin。Cygwin 专注于在 Windows 上构建 Unix 软件,而 MSYS2则专注于构建基于 Windows API 的本地软件。


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不咋会。文章来源地址https://www.toymoban.com/news/detail-488516.html

git clone git@github.com:da1234cao/wrk2.git
make build && cd build && cmake ..
make

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

到了这里,关于windows上编译linux程序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • (二)掌握最基本的Linux服务器用法——Linux下简单的C/C++ 程序、项目编译

        静态库(Static Library) :静态库是编译后的库文件,其中的代码在编译时被链接到程序中,因此它会与程序一起形成一个独立的可执行文件。每个使用静态库的程序都会有自己的库的副本,这可能会导致内存浪费。常用后缀名(.a) 优点: ·独立性:库的代码会被静态地链接到

    2024年02月12日
    浏览(42)
  • 【Linux】:使用git命令行 || 在github创建项目 || Linux第一个小程序——进度条(进阶版本)

    在本章开始之前还是先给大家分享一张图片 这是C++的笔试题 感兴趣的同学可以去试一试 有难度的哟 也可以直接在牛客网直接搜索这几道题目哈 好了今天我们正式进入我们的正题部分 安装git 使用 Github 创建项目 注册账号 创建项目 ♨️1. 登陆成功后, 进入个人主页, 点击左下

    2024年02月05日
    浏览(49)
  • 在Windows上编译和调试CoreCLR

    本文的唯一目的就是让你运行Hello World Window 7+ 确保C++ 工具已经被安装,默认是不安装的,所以要选择自定义模式,VS 2015 精简版不支持。 下载 CMake for windows,并把Cmake的目录添加到为PATH的系统变量里。 下载Python for windows 并安装,并把Python的目录地址添加到Path系统变量中。

    2024年02月11日
    浏览(32)
  • Tauri开发的程序,使用github action快速跨平台编译并发布流程,包括Windows、mac、m芯片、linux等,以及常见报错

    Tauri 严重依赖原生库和工具链,因此目前无法在某一平台实现交叉编译。最佳选择是使用托管在 GitHub Action、Azure Pipelines、GitLab 或其他选项上的 CI/CD 管道进行编译。管道可以同时为每个平台运行编译,使编译和发布过程更加容易。 为了便于设置,官方目前提供 Tauri Action。

    2024年02月10日
    浏览(67)
  • 【Python微信机器人】第一篇:在windows11上编译python

    我打算写一个系列,内容是将python注入到其他进程实现inline hook和主动调用。本篇文章是这个系列的第一篇,后面用到的案例是 注入python到PC微信实现基本的收发消息 。文章着重于python方面的内容,所以对于微信找收发消息的call不会去讲过程,有兴趣的可以直接百度搜 PC微信

    2024年02月08日
    浏览(44)
  • ubuntu上编译Linux内核步骤

    1.下载Ubuntu镜像 Enterprise Open Source and Linux | Ubuntu 在最左边Ubuntu Desktop处点22.04LTS下载iso文件 2.在VMware上创建新的虚拟机 Ubuntu 20.04 虚拟机安装教程_柯基@的博客-CSDN博客_虚拟机安装ubuntu20.04 特别注意 : 在\\\"指定磁盘容量\\\"这一步把\\\"最大磁盘大小\\\"设置为 50G 如果忘记了或者已经设为

    2024年01月16日
    浏览(39)
  • 【OpenVINO 】在 MacOS 上编译 OpenVINO C++ 项目

    前言 英特尔公司发行的模型部署工具OpenVINO™模型部署套件,可以实现在不同系统环境下运行,且发布的OpenVINO™ 2023最新版目前已经支持MacOS系统并同时支持在苹果M系列芯片上部署模型。在该项目中,我们将向大家展示如何在MacOS系统、M2芯片的Macbook Air电脑上,展示使用Op

    2024年02月02日
    浏览(37)
  • IDEA有些类爆红,但是项目可以正常启动?

    当在IDEA中看到一些类爆红,但项目能够正常启动,这可能是由于以下原因导致的: 1. 缺少依赖或依赖冲突:爆红可能是因为缺少某些依赖或者依赖的版本冲突。确保项目中使用的所有依赖都已正确配置,并且版本兼容。 2. IDE缓存问题:IDEA有时可能会出现缓存问题,导致一些

    2024年02月05日
    浏览(38)
  • 小白福利 | Window前言

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。 GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。 作者: KAiTO 文章来源:GreatSQL社区原创 因为交流群中涌入了越来越多的对GreatSQL感兴趣的开源爱好者,也有许多的初学者,初学者可能对Linux等平台较

    2023年04月18日
    浏览(44)
  • 在 VsCode 上编写和调试 C 语言程序

    Visual Studio Code (以下简称 VsCode) MinGW-Get 编译器管理工具 所有需要的文件均已放在网盘中,点击链接即可查看。 阿里云盘传送门 提取码: 77yx 下载好所需要的的软件及安装包后,点击双击对应的安装包文件打开安装程序。 安装与配置 VS Code 安装主程序 双击 VSCodeSetup.exe 打开

    2024年02月05日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包