CMake - 构建没有首选 32 位标志的 C#
Posted
技术标签:
【中文标题】CMake - 构建没有首选 32 位标志的 C#【英文标题】:CMake - Building C# without Prefer 32-bit Flag 【发布时间】:2018-11-09 21:50:09 【问题描述】:我有一个从 C++ 创建 DLL 的 CMake 项目和一个加载该 DLL 的 C# Windows 窗体可执行文件。
我使用 CMake 生成器:Visual Studio 15 2017 Win64
无论我做什么(一个例子是设置编译选项:/platform:anycpu
),我都无法让 CMake 没有编译标志:/platform:anycpu32bitpreferred
。
当我在 VS2017 中打开生成的 VS 项目时,它在构建选项中设置了“Prefer 32-bit”标志。
有没有办法强制 CMake 生成我的 C# 项目而不设置此标志? 除非我使用 32 位 DLL,否则它会导致运行时链接问题。
【问题讨论】:
【参考方案1】:这对我有用。在 cmake 3.14 上测试,但应该适用于 3.8.2 及更高版本。
set_property(TARGET $TARGET_NAME PROPERTY VS_GLOBAL_Prefer32Bit "false")
【讨论】:
【参考方案2】:这个问题似乎是 CMake 中一个更大问题的一部分:https://gitlab.kitware.com/cmake/cmake/issues/17521
我找到了一个解决方法,就是在构建之前设置如下环境变量:
set Prefer32Bit=false
但是,缺点是这是为整个构建设置的,而不是为每个项目设置的。
【讨论】:
以上是关于CMake - 构建没有首选 32 位标志的 C#的主要内容,如果未能解决你的问题,请参考以下文章
“首选 32 位”编译器标志对 Visual Studio(C#、VB)意味着啥?