我有一个CMake项目,它使用C ++和一个加载DLL的C#Windows Forms可执行文件创建一个DLL。
我使用CMake生成器:Visual Studio 15 2017 Win64
无论我做什么(一个例子是设置编译选项:/ platform:anycpu)我不能让CMake没有编译标志:/ platform:anycpu32bitpreferred。
当我在VS2017中打开生成的VS项目时,它有"首选32位"标记在构建选项中设置。
有没有办法强制CMake在没有设置此标志的情况下生成我的C#项目? 它导致运行时链接问题,除非我使用32位DLL。
答案 0 :(得分:1)
这对我有用。在cmake 3.14上进行了测试,但应在3.8.2及更高版本上正常工作。
set_property(TARGET ${TARGET_NAME} PROPERTY VS_GLOBAL_Prefer32Bit "false")
答案 1 :(得分:0)
此问题似乎是CMake中更大问题的一部分:https://gitlab.kitware.com/cmake/cmake/issues/17521
我找到了一种解决方法,即在构建之前设置以下环境变量:
set Prefer32Bit=false
然而,缺点是这是为整个构建设置的,而不是按项目设置。