Ориентация на Linux с помощью Visual Studio 2017 и CMake

Я пытаюсь нацелить простой проект на основе CMake на Linux (x86) из VS2017.

CMakeLists.txt

project (hello-cmake)
add_executable(hello-cmake hello.cpp)

hello.cpp

#include <iostream>

int main(int argc, char* argv[])
{
    std::cout << "Hello from Linux CMake" << std::endl;
}

Моя настройка:

  • Visual Studio 15.8.2 работает на Win7
  • Ubuntu 16.04
  • CMake 3.12.1
  • g ++ 5.4.0, gcc 5.4.0

Я внимательно прочитал инструкции на веб- сайте MSDN, но не могу заставить его работать.

Используя стандартный файл CMakeSettings.json, сгенерированный VS, команда rsync продолжила стирать мой каталог ~!

Ниже команды, как это выглядит в VS:

rsync -t --delete --delete-excluded -v -r --exclude=.vs --exclude=.git --exclude=.vs --exclude=.git  /D/JP/svn/mirtec/test_cmake_vs2017/ rsync://alex@localhost:60584/temp

Я понимаю, что делает --delete --delete-exc. Но я не понимаю, почему он нацелен на мой домашний каталог?

Как я должен указать местоположение на целевой машине, куда будут копироваться файлы (я думал, что это было RemoteCMakeListsRoot, но мой опыт показывает, что это не так).

Должен ли я создать выделенного пользователя для отладки VS/CMake?

Я отредактировал файл CMakeSettings.json, чтобы удалить параметры "--delete --delete-exc". В результате rsync перестает пытаться стереть ~, но теперь VS говорит, что не может найти CMake! Я полностью застрял. Я установил CMake, и он доступен в /usr/local/bin. Я пытался с и без названия программы для cmakeExecutable в файле JSON безрезультатно.

Это вывод в VS:

1> Copying files to remote machine...
1> rsync -t -v -r --exclude=.vs --exclude=.git --exclude=.vs --exclude=.git  /D/JP/svn/mirtec/test_cmake_vs2017/ rsync://alex@localhost:56138/temp
1> sending incremental file list
1> ./
1> CMakeSettings.json
1> 
1> sent 828 bytes  received 42 bytes  580.00 bytes/sec
1> total size is 1349  speedup is 1.55
1> Finished copying files.
1> /usr/local/bin/cmake does not exist

Есть ли кто-нибудь, кто использует интеграцию VS2017 / CMake для успешной ориентации на Linux? Были ли у вас похожие проблемы? Я что-то пропустил?

0 ответов

Я встретил ту же ошибку, что и ты, но наконец решил ее.

  • 1 Проверьте, установлен ли cmake в Linux или нет.

  • 2 Найдите CMakeSetting.json файл в вашем проекте vs2017, он автоматически генерируется vs2017 при сборке, проблема в этом файле.

    Проверить "cmakeExecutable": "/usr/bin/cmake" и убедитесь, что путь совпадает с вашим удаленным Linux.(используйте which cmake чтобы проверить путь). Как вы уже упоминали, "cmakeExecutable": /usr/local/bin/cmake должно быть "cmakeExecutable": /usr/bin/cmake,

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