Как добавить компиляцию 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