【问题标题】:how to jump to the implementation of c++ functions built by myself?如何跳转到自己构建的c++函数的实现?
【发布时间】:2021-08-03 15:24:38
【问题描述】:

这似乎是一个愚蠢的问题,但它困扰了我很长时间。首先,我自己搭建了leveldb,make install。然后,我可以使用#include <leveldb/db.h> 等。但是,我无法使用jump to the implementation 的某些功能。 ps:我正在使用 vscode 和 vscode-cmake 扩展。

例如,我不能跳转到Open函数的实现。

【问题讨论】:

  • 在构建 leveldb 时添加调试符号可能会有所帮助:cmake -DCMAKE_BUILD_TYPE=Debugcmake -DCMAKE_BUILD_TYPE=RelWithDebInfo
  • 安装库与告诉项目使用库不同。
  • @sweenish 没有,但target_link_libraries() 有,而且 OP 显然有,
  • 您拥有add_definitions(..., "-g") 的事实表明您没有使用cmake 的正常调试/发布机制(如@Thomas 所述)。但如果你指的是智能感知的代码导航,那可能不相关。 CMakeLists.txt 是否位于您在 VSCode 中打开的工作区的根目录?如果不是这种情况,相对路径可能会混淆。
  • @Thomas @Frank 我用Debug 模式重建leveldb,删除add_definitions(..., "-g") 并使CMakeList.txt 位于根目录。但这不行。 VSCode 有什么问题吗?我决定使用 IDE 再试一次。

标签: c++ visual-studio-code makefile cmake


【解决方案1】:

我猜,在安装 leveldb 时,你基本上会得到 leveldb 的头文件和库二进制文件。

您应该尝试使用 FetchContent 模块将 leveldb 源代码直接集成到您的项目中。

参考:https://cmake.org/cmake/help/latest/module/FetchContent.html

【讨论】:

    猜你喜欢
    • 2017-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多