Как добавить компиляцию Linux в Cmake Project в 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 ответа
В CMake пока нет встроенной поддержки VS "Linux Console Application" (как для CMake версии 3.9).
Изменить: 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, чтобы напрямую поддерживать это (например, с помощью набора инструментов платформы). Remote_GCC_1_0
).
Кажется, он пока не работает так, как вы ожидаете. Кажется, вам нужно создать отдельный Linux vcproject для существующей кодовой базы cmake. В настройках VS нет ничего похожего на цель linux. Для получения дополнительной информации см. Комментарии в этом блоге msdn.
Вы можете либо создать "новый проект Linux" и скопировать свои исходные коды, либо попробовать (и адаптировать), используя для существующих источников эти неофициальные сценарии: https://github.com/robotdad/vclinux