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

CMake构建x64时C#项目目标始终为AnyCPU的问题求助

解决CMake混合C++/C#项目中C#目标始终为AnyCPU的问题

CMake对C#项目的平台目标处理逻辑和C++不同,默认不会跟随-A x64参数自动设置,以下是几个直接有效的解决办法:

  • 全局强制设置C#目标平台
    在根CMakeLists.txt的开头添加全局编译标志,强制所有C#项目使用x64平台:

    set(CMAKE_CSharp_FLAGS "/platform:x64")
    
  • 针对单个C#项目精准配置
    如果不需要全局设置,可在特定C#项目的add_executable/add_library语句后添加属性配置:

    add_executable(YourCSharpExe YourSource.cs)
    set_target_properties(YourCSharpExe PROPERTIES
      VS_GLOBAL_Platform "x64"
      VS_GLOBAL_PlatformTarget "x64"
    )
    

    这两个属性会直接修改VS项目文件的平台配置,覆盖默认的AnyCPU设置。

  • 确认生成器与平台参数匹配
    确保使用的Visual Studio生成器版本支持x64,例如:

    cmake -G "Visual Studio 17 2022" -A x64 ..
    

    旧版本生成器对C#平台的兼容性较差,建议使用CMake 3.12及以上版本(3.12开始完善C#项目支持)。

  • 排查冲突配置
    检查子目录的CMake脚本是否存在重置CMAKE_CSharp_FLAGS或平台属性的代码,避免全局设置被局部脚本覆盖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 01:09:29