Я изучаю CMake для создания кода на С++ и борюсь со следующей концепцией. На моем корневом уровне у меня есть некоторые файлы cpp и CMakeLists.txt, которые успешно генерируют некоторый бережливый код в каталоге gen-cpp. Мой корневой уровень CMakeLists.txt содержит:
include_directories ( "путь к корню" /ген-CPP). (наряду с автоматическим генератором и включает в себя.
Все компилируется нормально, но я получаю связанные с динамической библиотекой ошибки времени выполнения для символа undefined, ссылающегося на класс, определенный в каталоге gen-cpp. Когда я перемещаю файлы в каталоге на корневой уровень, он работает нормально. что мне не хватает? (Я также скорректировал #include в корневом уровне cpp directorie s, чтобы указать на "путь к корню" /gen -cpp).
Это непонимание использования include_directory, где я должен использовать add_subdirectory. Если последний, будет ли код в gen-cpp нужен собственный CMakeLists.txt? Почему этот дополнительный файл не нужен, когда содержимое указанного каталога является корневым уровнем?