Индексатор CLion не разрешает некоторые включения в каталоге проекта


У меня есть проект CLion C++, который имеет следующую структуру:

    project
       ---->my_includes
       |   ----> my_own.hpp
       ---->source
           ----> my_app
               ----> my_src.cpp

Первая строка my_src.СРР

#include "my_includes/my_own.hpp"

Я использую внешнюю систему сборки, которая требует этого формата включения. Проблема в том, что если я использую функцию в исходном файле, определенном в заголовке included, CLion говорит: "Не могу найти my_own.ГЭС", если я попытаюсь зависнуть над включением.

Я попытался пометить каталог include как содержащий исходный код проекта или заголовки, но это не исправило его. Есть идеи?

2 7

2 ответа:

Вам нужно создать CMakeLists.txt, Чтобы Клион был счастлив. Достаточно объявить все исходные файлы, вам не нужно конвертировать ваш scons (или любую другую систему сборки) в cmake.

Вам даже не нужно писать CMakeLists.txt вручную, вы можете попросить CLion сделать это: File | Import project ... |, а затем указать на каталог, содержащий ваш проект.

Теперь отредактируйте сгенерированный CMakeLists.txt и добавьте команду cmake, чтобы сообщить CLion, где найти includes (фактически сказать компилятору, и CLion будет повторное использование этой информации).

Поскольку ваши исходные файлы используют include как #include "my_includes/my_own.hpp", вам нужно сообщить cmake базовый каталог, содержащий каталог my_includes:

include_directories(.)

Где точка означает тот же каталог, что и каталог, содержащий CMakeLists.txt.

Я протестировал проект, воспроизводящий ваш макет, и от my_src.cpp я могу перейти к my_own.hpp.

Тогда для сборки вам все равно придется использовать scons в консоли. Также можно добавить команду cmake, add_custom_target(), которая вызовет ваши scons (или ваш make, или что-то еще), так что вы также можете перейти от CLion к ошибкам сборки.

Это должен быть проект на основе CMake, чтобы правильно открыться в CLion. Проверить Тмаки основы учебник если вы новичок в CMake, например: https://www.jetbrains.com/help/clion/2016.1/quick-cmake-tutorial.html