Visual Studio 编译到错误的路径并在与 CMake 一起使用时尝试 运行 错误的路径

Visual Studio compiling to wrong path AND trying to run wrong path when used with CMake

我是 CMake 的新手(也是 C++ 的新手,尽管这在这里不重要),我在 Visual studio.

中使用 CMake 时遇到问题

我创建了一个目录,假设它叫做 Project,并在其中放入一个具有以下结构的简单项目:

Project/
    build/ <empty>
    src/
        main.cpp
    CMakeLists.txt
    CMakePresets.json

这些文件里面只是最基本的默认代码:

然后,我使用 CMake 创建了一个 Visual Studio 解决方案:

C:\...\Project\build> cmake ..

这工作正常,没有任何错误,Visual Studio 可以打开解决方案。也能正确构建项目...

但是它不能运行它构建的可执行文件。成功构建项目后,它已将可执行文件写入 C:\...\Project\build\Debug\Project.exe,但它试图打开 C:\...\Project\build\x64\Debug\ALL_BUILD,我收到一个错误弹出窗口。

我认为这里有两处错误:

  1. 可执行文件应该写在C:\...\Project\build\x64\Debug文件夹中,而不仅仅是C:\...\Project\build\Debug文件夹。这就是我以前使用 Visual Studio 时的工作方式,这是它试图在其中搜索的文件夹。
  2. 它应该搜索一个名为 Project.exe 的可执行文件,而不是一个名为 ALL_BUILD.
  3. 的可执行文件

当我从命令行手动 运行 Project.exe 时,它工作正常。但我似乎无法正确地 Visual Studio 运行。

我在这里做错了什么,我怎样才能让它起作用?

您在解决方案资源管理器中看到了几个项目。这些项目是构建目标。默认目标是 ALL_BUILD,构建所有配置的目标,就像 cmake --build . 那样。

在解决方案资源管理器中将所需目标设置为启动项目。这会将调试器指向 运行.

的可执行文件

默认项目设置为 ALL_BUILD 要更改 VS 生成器的默认值,请使用以下 CMake 语句:

set_property(DIRECTORY PROPERTY VS_STARTUP_PROJECT Project)

add_executable 命令后的任意位置。