You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Windows项目中便捷编译Linux版本?已含WIN32/Linux分支

便捷双平台编译方案

1. 用CMake统一构建流程

这是跨平台编译的标准解决方案,把项目的编译规则写到CMakeLists.txt里,一套配置适配Windows和Linux,不用维护两套项目文件。

  • 核心操作:
    • 在项目根目录创建CMakeLists.txt,定义项目名称、源文件、编译宏、依赖库等(示例配置如下)
    • Windows下:打开Visual Studio,直接打开CMakeLists.txt,VS会自动生成CMake项目,选择Windows平台编译即可
    • Linux下:在终端进入项目目录,执行cmake . && make,CMake会自动生成Makefile并编译,同时帮你定义好LINUX宏

示例CMake配置片段:

cmake_minimum_required(VERSION 3.10)
project(MyCrossPlatformApp)

# 递归收集所有源文件(根据你的项目结构调整路径)
file(GLOB_RECURSE APP_SOURCES "src/*.cpp" "include/*.h")

add_executable(MyApp ${APP_SOURCES})

# 自动设置平台宏,匹配你代码里的#ifdef逻辑
if(WIN32)
    target_compile_definitions(MyApp PRIVATE WIN32)
elseif(UNIX)
    target_compile_definitions(MyApp PRIVATE LINUX)
endif()

# 平台特定依赖(比如Windows下链接系统库)
if(WIN32)
    target_link_libraries(MyApp PRIVATE user32.lib)
endif()

2. 用WSL直接编译Windows下的代码

不用切换系统,在Windows上启用WSL(Windows子系统Linux),直接访问本地项目目录编译,完全不用复制文件。

  • 操作步骤:
    • 启用WSL:打开Windows设置 -> 应用 -> 可选功能 -> 添加功能,安装“适用于Linux的Windows子系统”,再在微软商店装个Ubuntu发行版
    • 安装编译工具:打开Ubuntu终端,执行sudo apt update && sudo apt install gcc g++ make
    • 编译代码:在终端里cd到你的Windows项目路径(比如cd /mnt/c/Users/你的用户名/Projects/MyProject),然后用g++编译:
      g++ src/*.cpp -o MyApp -DLINUX
      
      编译好的程序直接在WSL里运行即可,代码仍在原Windows文件夹,两边都能修改编译。

3. 用Visual Studio跨平台编译功能

如果习惯用VS开发,直接用VS的Linux开发能力,同一个IDE里切换Windows/Linux编译目标。

  • 操作步骤:
    • 打开VS安装器,勾选“使用C++的Linux开发”工作负载,安装完成后重启VS
    • 打开你的Windows项目,在顶部的“解决方案平台”下拉菜单里选择“配置管理器”,添加Linux平台(可选WSL或远程Linux机器)
    • 配置好连接后,直接切换到Linux平台编译,VS会自动处理宏定义(帮你加-DLINUX)和编译流程,代码不用动,也不用复制文件

额外注意点

  • 路径问题:代码里别硬编码Windows风格的反斜杠路径,尽量用相对路径,或者用宏定义适配(比如#ifdef WIN32 #define PATH_SEP "\\" #else #define PATH_SEP "/" #endif)
  • 换行符:如果用git管理代码,设置git config --global core.autocrlf true,避免Windows和Linux下换行符不一致导致的编译问题
  • 依赖库:如果项目用到第三方库,尽量选跨平台版本,或者用CMake的find_package自动查找平台对应的库

内容的提问来源于stack exchange,提问作者Dre_d777

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 19:20:17