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
相关产品推荐
相关产品推荐

