c++ 在Visual Studio中配置cmake库调试目标

hyrbngr7  于 2023-04-01  发布在  其他
关注(0)|答案(2)|浏览(197)

我正在开发Gstreamer插件,如果这很重要的话。我有一个C++ cmake项目,它在Visual Studio中打开。项目被识别和构建。但它只有库目标,它们都列在“选择启动项”组合框中。
我想配置一些目标或配置Dll目标,使其成为可启动的,这样我就可以调试我的源运行Gstreamer控制台管道,这将间接使用我的库。
我假设我应该配置launch.vs.json,但不知道如何正确地做。在我选择一个Dll作为活动库之后,然后VS创建新的配置:

{
      "type": "dll",
      "exe": "",
      "project": "CMakeLists.txt",
      "projectTarget": "gstdecmpa.dll (build\\gst_sdk_win64_x64_build_debug\\lib\\gstreamer-1.0\\gstdecmpa.dll)",
      "name": "gstdecmpa.dll (build\\mc_gst_sdk_win64_x64_build_debug\\lib\\gstreamer-1.0\\gstdecmpa.dll)"
    },

我还尝试添加另一个配置:

{
      "project": "CMakeLists.txt",
      "name": "MyCustomApp",
      "type": "cppvsdbg",
      "request": "launch",
      "program": "gst-launch-1.0",
      "args": [
        "arg1",
        "arg2"
      ]
    },

但是最后一个启动了我的一个测试,它存在于project中,而不是“gst-launch-1.0”
我可以通过修改第一个或第二个配置来实现我的目标吗?或者其他方法?
请告诉我如何创建可发射的目标与任意应用程序或至少指出我正确的方向!

oyjwcjzk

oyjwcjzk1#

我通过使用cmake生成.sln来实现这个目标。

cmake -G 'Visual Studio 17 2022' -A x64 ...

在.sln中我可以正确设置目标。
但仍然不是理想的解决方案。项目看起来不方便,它看起来更像是工作而不是直接的方法。

ni65a41a

ni65a41a2#

您可以使用Visual Studio特定的变量VS_STARTUP_PROJECTVS_DEBUGGER_COMMAND来完成此操作。例如:

set_property(
    DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
    PROPERTY VS_STARTUP_PROJECT ${target})

  set_property(
    TARGET ${target}
    PROPERTY VS_DEBUGGER_COMMAND
    "PATH/TO/MY/COMMAND")

相关问题