как перейти к реализации функций c , созданных мной самим?

#c #visual-studio-code #makefile #cmake

Вопрос:

это кажется глупым вопросом, но он беспокоит меня уже давно. Прежде всего, я сам создаю базу данных уровня, и make install . Затем я могу использовать #include <leveldb/db.h> и т. Д. Но я не справляюсь с jump to the implementation некоторыми функциями. ps: Я использую vscode и расширение vscode-cmake.

введите описание изображения здесь

Например, я не могу перейти к реализации Open функции.

введите описание изображения здесь

Комментарии:

1. Это может помочь добавить отладочные символы при создании базы данных уровней: cmake -DCMAKE_BUILD_TYPE=Debug или cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo .

2. Установка библиотеки-это не то же самое, что указание вашему проекту использовать библиотеку.

3. @sweenish нет, но target_link_libraries() делает, и у OP явно есть это,

4. Тот факт, что у вас есть add_definitions(..., "-g") , указывает на то, что вы не используете обычный механизм отладки/выпуска cmake (как указано @Thomas). Но если вы ссылаетесь на навигацию по коду intellisense, это может быть не связано. Является ли CMakeLists.txt в корне рабочей области, против которой вы выступаете в VSCode? Относительные пути могут запутаться, когда это не так.

5. @Thomas @Frank Я перестраиваю базу данных уровней с Debug помощью режима, удаляю add_definitions(..., "-g") и делаю CMakeList.txt найдите в корне. Но это не нормально. Что-то не так с VSCode? Я решил использовать IDE и попробовать еще раз.

Ответ №1:

Я предполагаю, что при установке базы данных leveldb вы в основном получите заголовки базы данных leveldb и двоичный файл библиотеки.

Вместо этого вам следует попытаться интегрировать исходный код leveldb непосредственно в свой проект с помощью модуля fetchContent.

ссылка: https://cmake.org/cmake/help/latest/module/FetchContent.html