Ориентация на 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
,