#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