【问题标题】:CMake - Building C# without Prefer 32-bit FlagCMake - 构建没有首选 32 位标志的 C#
【发布时间】: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,否则它会导致运行时链接问题。

【问题讨论】:

    标签: c# cmake anycpu


    【解决方案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
      

      但是,缺点是这是为整个构建设置的,而不是为每个项目设置的。

      【讨论】:

        猜你喜欢
        • 2015-12-08
        • 2015-09-17
        • 2011-11-22
        • 2018-03-29
        • 2014-09-29
        • 1970-01-01
        • 2012-10-20
        • 1970-01-01
        相关资源
        最近更新 更多