В одном файле CMakeLists.txt имеется целевой объект общей библиотеки SL и целевой объект исполняемого файла X, связывающийся с SL. Хотя каждая цель создается правильно по отдельности, когда обе они занимают один и тот же файл CMakeLists.txt, я получаю следующую ошибку:
Код: Выделить всё
Expected output file at path/to/libSL.so for target SL but there was none
В упрощенной форме CMakeLists.txt выглядит так:
Код: Выделить всё
add_library(SL SHARED ${SL_sources})
add_executable(X ${X_sources})
target_link_libraries(X SL)
Явное добавление зависимости не помогает:
Почему cmake отказывается создавать SL перед попыткой создания ссылки на X? Есть ли проблема с помещением этих двух целей в один файл? Это ошибка в cmake?
Проверено на Fedora с cmake 3.22 и 3.27 (результат тот же).
Подробнее здесь:
https://stackoverflow.com/questions/788 ... he-project