Ошибка MSB8031 с решением Visual Studio 2013, созданным CMake с использованием ExternalData

Когда я добавляю цель теста с CMake ExternalDataт.е.

include(ExternalData)
set(ExternalData_URL_TEMPLATES "http://ntctestdata/SoftwareTestData/AutomatedTests/%(algo)/%(hash)")

ExternalData_Add_Test(it_SdfFullData
   NAME it_SdfFull
   COMMAND it_SdfFull
)

ExternalData_Add_Target(it_SdfFullData)

Visual Studio 2013 (MSVC 12) выдает эту ошибку сборки:

Build FAILED.

   "c:\...\build_dir\ALL_BUILD.vcxproj" (default target) (1) ->
   "C:\...\build_dir\...\test\it_Full\it_SdfFullData.vcxproj" (default target) (218) ->
   (PrepareForBuild target) -> 
     C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppBuild.targets(376,5): error MSB8031: Building an MFC project for a non-Unicode character set is deprecated. You must change the project property to Unicode or download an additional library. See http://go.microsoft.com/fwlink/p/?LinkId=286820 for more information. [C:\...\build_dir\...\test\it_Full\it_SdfFullData.vcxproj]

Мне потребовалось много времени, чтобы сузить это до этого. Я в замешательстве, потому что я делаю практически то же самое в другом файле CMake в проекте-партнере, а также в реальных тестовых сборках. Кажется, что ExternalData_Add_Test добавляет не-Unicode тест или что-то в решение, созданное CMake.

я должен add_definitions(-DUNICODE -D_UNICODE) установить в родительском файле CMake.

Что еще более запутанно, так это то, что это основано на моей локальной системе (а также на всех компиляторах, не относящихся к MSVC), а не на наших системах сборки CI (... где это имеет значение.), Даже если среды одинаковы.

0 ответов

Другие вопросы по тегам