如何组织C++ CMake代码库以构建和包含库,同时保留IDE调试功能?

3z6pesqy  于 2022-11-11  发布在  其他
关注(0)|答案(1)|浏览(151)

你好,我正在尝试分解一个C代码库(CMake与MSVC生成器)。
我正在使用模块集并创建共享代码的库。
库正在安装输出目录中构建.lib文件,该目录包含头文件的include文件夹。(安装步骤正在复制这些文件)
问题是消费项目失去了到原始头文件和相应cpp文件的链接。这导致我们失去了一些不错的IDE特性。
例如,在Visual Studio中,Ctrl-K+O不再交换hpp/cpp。
此外,如果我们发现问题,但包含文件夹中的副本不是存储库中的真实源文件,我们希望编辑库中的头文件。
是否有一种方法可以构建一个大型C
代码库,以便同时获取库和调试功能(例如了解IDE中的源文件位置)?

a2mppw5e

a2mppw5e1#

我不知道Visual Studio代码是如何工作的,但是作为Visual Studio代码用户,我建议您在根目录CMakeLists.txt的顶部使用set(CMAKE_EXPORT_COMPILE_COMMANDS ON),并配置您的IDE从compilation_database.json文件加载配置。该文件为您的IDE提供了有关如何解析代码文件的最终信息。
在VSCode中,我必须安装CMake-tools扩展并使用此c_cpp_properties.json配置文件

{
    "configurations": [
        {
            "name": "CMake config",
            "intelliSenseMode": "${default}",
            "compileCommands": "compile_commands.json",
            "configurationProvider": "ms-vscode.cmake-tools"
        }
    ],
    "version": 4
}

相关问题