CMake - сборка C # без предпочтительного 32-битного флага - PullRequest
0 голосов
/ 31 мая 2018

У меня есть проект CMake, который создает DLL из C ++, и исполняемый файл Windows Forms C #, который загружает DLL.

Я использую генератор CMake: Visual Studio 15 2017 Win64

Неважночто я делаю (один пример будет установка параметра компиляции: /platform:anycpu), я не могу получить CMake, чтобы не иметь флаг компиляции: /platform:anycpu32bitpreferred.

Когда я открыл сгенерированный проект VS в VS2017, онв опциях сборки установлен флаг "Предпочитать 32-битный".

Есть ли способ заставить CMake сгенерировать мой проект C # без этого установленного флага?Это вызывает проблемы со связыванием во время выполнения, если я не использую 32-битную DLL.

Ответы [ 2 ]

0 голосов
/ 15 июля 2019

Это работает для меня.Протестировано на cmake 3.14, но должно работать на 3.8.2 и выше.

set_property(TARGET ${TARGET_NAME} PROPERTY VS_GLOBAL_Prefer32Bit "false")

0 голосов
/ 08 июня 2018

Эта проблема выглядит как часть более серьезной проблемы в CMake: https://gitlab.kitware.com/cmake/cmake/issues/17521

Я нашел обходной путь, который должен установить следующую переменную среды перед сборкой:

set Prefer32Bit=false

Однако недостатком является то, что это установлено для всей сборки, а не для каждого проекта.

...