【问题标题】:Creating Visual Studio Project from CMake, Visual studio does not find executable从 CMake 创建 Visual Studio 项目,Visual Studio 找不到可执行文件
【发布时间】:2020-01-17 14:35:01
【问题描述】:

基本上,我的问题与 How to configure CMake so that the generated Visual Studio project finds the executable?。那里的答案都不适合我。

我有一个 CMake 项目,我只想从中创建一个 Visual Studio 2019 项目:

  • 所以我只是从根目录运行cmake .
  • 然后我的根目录中有一个 *.sln 文件。

  • 使用 Visual Studio 2019 打开后,我按下“Local Widows Debugger”按钮,编译成功,但 IDE 报错:

    Unable to start program 'C:\Users...\x64\Debug\ALL_BUILD'. The system is unable to find the specified file.
    

使用 travis 也可以正常编译:https://travis-ci.com/Necktschnagge/markov_chain_analyzer/builds/144941090

您可以在此处查看代码:https://github.com/Necktschnagge/markov_chain_analyzer/tree/old

我需要做什么才能让 CMake 创建一个配置良好的 VS 解决方案,以便我可以运行调试器?

【问题讨论】:

标签: c++ visual-studio cmake


【解决方案1】:

当您使用 CMake 创建 Visual Studio 解决方案时,它会自动将启动项目设置为 ALL_BUILD。这是一个 CMake 预定义目标,用于构建解决方案中的所有项目。它不是包含可以调试的可执行文件的项目。

在调试之前,您必须将 解决方案资源管理器 中的启动项目更改为您的可执行项目之一。您可以通过右键单击要调试的项目并选择设置为启动项目来执行此操作。如果您将 VS 与 CMake 集成一起使用,还有更多说明 here

在从头开始构建 CMake 时,您还可以告诉 CMake 默认设置一个不同启动项目,使用 VS_STARTUP_PROJECT。在您的顶级 CMake 文件中添加这样的内容:

set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT MyExeTarget)

现在,CMake 会将 MyExeTarget 设置为 Visual Studio 中的启动项目,而不是 ALL_BUILD

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多