Не удалось скомпилировать проект Visual Studio через командную строку. Что я делаю неправильно? - PullRequest
0 голосов
/ 09 сентября 2018

Я на самом деле не пытаюсь изучать C / C ++, но мне нужно скомпилировать исходники для утилиты, которую я буду использовать с Python.

В инструкциях по установке сказано, что мне нужно запустить CMake для сборки проекта Visual Studio. После того, как я успешно запустился, я получил этот вывод

C:/metis-5.1.0\build\Windows>cmake -DCMAKE_CONFIGURATION_TYPES="Release" ..\..
-- Building for: Visual Studio 14 2015
-- Selecting Windows SDK version  to target Windows 10.0.17134.
-- The C compiler identification is MSVC 19.0.24210.0
-- The CXX compiler identification is MSVC 19.0.24210.0
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for execinfo.h
-- Looking for execinfo.h - not found
-- Looking for getline
-- Looking for getline - not found
-- Configuring done
-- Generating done
-- Build files have been written to: C:/metis-5.1.0/build/Windows

Поскольку мне нужно собрать вышеупомянутое для Python 3.5 x86, я подумал, что лучшим вариантом было бы использовать командную строку Cross Build Tools для Visual C ++ 2015 x86, поэтому я открыл эту командную строку и использовал следующую командную строку для компиляции результирующий проект (созданный выше)

C:\metis-5.1.0\build\Windows>MSBuild METIS.sln /property:Configuration=Release /property:Platform=x86
Microsoft (R) Build Engine version 14.0.25420.1
Copyright (C) Microsoft Corporation. All rights reserved.

Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
Build started 9/8/2018 8:36:45 PM.
Project "c:\metis-5.1.0\build\Windows\METIS.sln" on node 1 (default targets).
c:\metis-5.1.0\build\Windows\METIS.sln.metaproj : error MSB4126: The specified solutio
n configuration "Release|x86" is invalid. Please specify a valid solution configuration using the Configuration and Platform proper
ties (e.g. MSBuild.exe Solution.sln /p:Configuration=Debug /p:Platform="Any CPU") or leave those properties blank to use the defaul
t solution configuration. c:\metis-5.1.0\build\Windows\METIS.sln]
Done Building Project "c:\metis-5.1.0\build\Windows\METIS.sln" (default targets) -- FA
ILED.


Build FAILED.

c:\metis-5.1.0\build\Windows\METIS.sln" (default target) (1) ->
(ValidateSolutionConfiguration target) ->
  c:\metis-5.1.0\build\Windows\METIS.sln.metaproj : error MSB4126: The specified solut
ion configuration "Release|x86" is invalid. Please specify a valid solution configuration using the Configuration and Platform prop
erties (e.g. MSBuild.exe Solution.sln /p:Configuration=Debug /p:Platform="Any CPU") or leave those properties blank to use the defa
ult solution configuration. [c:\metis-5.1.0\build\Windows\METIS.sln]

    0 Warning(s)
    1 Error(s)

Time Elapsed 00:00:00.10

Что я делаю не так?

Обновление: вот инструкция по сборке

The Visual Studio project will be called METIS.sln. Open it in Visual
Studio. If the configuration is not already "Release", set it to
"Release". Type F7 to build. The METIS library will be in
<BINARY_DIR>\libmetis\Release and the executable programs will be in
<BINARY_DIR>\programs\Release. (<BINARY_DIR> will be build\windows if
you used the command line or whatever you choose if using the CMake
GUI.) 

Они предназначены для Visual Studio, а не для командной строки, поэтому я не знаю, нужно ли мне устанавливать флаг "Освобождение" и где?

Обновление: изменение командной строки на MSBuild METIS.sln / property: Configuration = Release / property: Платформа = Win32 Решена проблема, но теперь я получаю другие ошибки: - (

1 Ответ

0 голосов
/ 10 сентября 2018

Пришлось изменить параметр платформы командной строки на Win32

...