Ориентация на Linux с помощью Visual Studio 2017 и CMake - PullRequest
0 голосов
/ 06 сентября 2018

Я пытаюсь нацелить простой проект на основе 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-exclude. Но я не понимаю, почему он нацелен на мой домашний каталог?

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

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

Я отредактировал файл CMakeSettings.json, чтобы удалить параметры «--delete --delete-exclude». В результате 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? Были ли у вас похожие проблемы? Я что-то упустил?

1 Ответ

0 голосов
/ 29 января 2019

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...