0

我正在尝试将一个简单的基于 CMake 的项目从 VS2017 定位到 Linux (x86)。

CMakeLists.txt

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

你好.cpp

#include <iostream>

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

我的设置:

  • 在 Win7 上运行的 Visual Studio 15.8.2
  • Ubuntu 16.04
  • CMake 3.12.1
  • g++ 5.4.0,gcc 5.4.0

我已仔细阅读 MSDN网站上的说明,但无法使其正常工作。

使用 VS 生成的默认 CMakeSettings.json,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-excluded 的作用。但我不明白为什么它针对我的主目录?

我如何指定目标机器上将复制文件的位置(我认为它是 remoteCMakeListsRoot,但我的经验表明它不是)。

我是否打算为 VS/CMake 调试创建一个专用用户?

我编辑了 CMakeSettings.json 以删除“--delete --delete-excluded”选项。结果 rsync 停止尝试擦除〜,但现在 VS 说它找不到 CMake!我完全被困住了。我已经安装了 CMake,它在 /usr/local/bin 中可用。我已经尝试在 json 文件中使用和不使用 cmakeExecutable 程序的名称,但均无济于事。

这是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?你有过类似的问题吗?我错过了什么吗?

4

1 回答 1

1

我遇到了和你一样的错误,但最终解决了。

  • 1 检查天气 cmake 是否安装在你的 linux 中。

  • 2CMakeSetting.json在你的vs2017项目中找到该文件,它是vs2017在构建时自动生成的,问题出在这个文件中。

    检查 "cmakeExecutable": "/usr/bin/cmake"选项,并确保路径与您的远程 linux 相同。(用于which cmake检查路径)。正如您提到的,"cmakeExecutable": /usr/local/bin/cmake应该是"cmakeExecutable": /usr/bin/cmake.

于 2019-01-29T07:52:41.883 回答