Как добавить компиляцию Linux в проект Cmake в Visual Studio
Visual Studio добавила много новых функций для C++ в прошлом году.
CMake С поддержкой CMake я могу сделать "открыть папку" и выбрать папку с CMakeLists.файл txt в нем. Visual Studio делает много приятной работы в обнаружении и создании его автоматически.
Компиляция Linux Visual studio теперь поддерживает удаленную компиляцию в Linux через SSH. Несколько руководств показывают, как пользователи могут создать новую " консоль Linux Приложение " в Visual Studio, и он автоматически попросит настроить SSH-соединение, которое будет использоваться для его создания. Я не вижу никаких инструкций о том, как это сделать в существующем проекте любого рода.
в частности, с проектом CMake можно ли открыть папку CMake в Visual Studio 2017 и построить ее на удаленной машине Linux? IfSoHow?
2 ответов
нет встроенной поддержки для VS "консольного приложения Linux" в CMake еще (как для CMake версии 3.9).
Edit: Visual Studio 2017 15.4 теперь поставляется с чем-то подобным без создания фактического .vcxproj
файлы. См.Visual C++ для разработки Linux с CMake
со стандартной версией CMake помимо описанных возможностей здесь используя существующие .vcxproj
файлы в качестве шаблона, вы можете только обмануть CMake в генерации этих типов проектов:
cmake_minimum_required(VERSION 3.7)
project(HelloLinux)
file(WRITE main.cpp [=[
#include <iostream>
int main()
{
std::cout << "Hello from Linux Console!" << std::endl;
}
]=])
add_executable(HelloLinux "main.cpp")
set_target_properties(
HelloLinux
PROPERTIES
VS_GLOBAL_KEYWORD "Linux"
VS_GLOBAL_ApplicationType "Linux"
VS_GLOBAL_ApplicationTypeRevision "1.0"
VS_GLOBAL_TargetLinuxPlatform "Generic"
VS_GLOBAL_LinuxProjectType "{D51BCBC9-82E9-4017-911E-C93873C4EA2B}"
)
Это на самом деле работает и производит на Linux .vcxproj
проект, который принимается VS. Но поскольку мы обошли CMake здесь, ни один из других параметров компилятора / компоновщика, которые вы определяете в своем сценарии CMake, не будет назначен.
поэтому моя рекомендация -поднять запрос для CMake непосредственно поддерживать это (например, через платформу toolset option Remote_GCC_1_0
).
Он, кажется, не работает, как вы ожидаете, пока. Кажется, вам нужно создать отдельный linux vcproject для существующей кодовой базы cmake. В vs options нет ничего похожего на цель linux. Для получения дополнительной информации см. комментарии в этой блог msdn.
вы можете создать "новый проект linux" и скопировать свои источники или попробовать (и адаптировать), используя для существующих источников эти неофициальные скрипты: https://github.com/robotdad/vclinux