Я часами смотрю на свою проблему и застреваю ...
У меня есть библиотека lib_1 с функцией getNumber()
.
Затем у меня есть библиотека lib_2 с функцией addNumbers()
.
addNumbers()
, вызывающая getNumber()
из lib_1.
Мой CMakeLists.txt:
add_library( lib_1 STATIC IMPORTED )
set_target_properties(lib_1 PROPERTIES IMPORTED_LOCATION path_to_lib_1)
add_library( lib_2 STATIC lib2.cpp )
target_link_libraries( lib_2 lib_1 )
target_include_directories(lib_2 PUBLIC include )
lib_2 прекрасно компилируется, также работают модульные тесты, использующие getNumber()
.
Затем я хочу связать lib_2 с моим приложением.
add_library( lib_1 STATIC IMPORTED )
set_target_properties(lib_1 PROPERTIES IMPORTED_LOCATION path_to_lib_1)
add_library( lib_2 STATIC IMPORTED )
set_target_properties(lib_2 PROPERTIES IMPORTED_LOCATION path_to_lib_2)
add_executable(app my_source_files )
target_link_libraries(app lib_1 lib_2)
Когда я компилирую свое приложение, я получаю эту хорошо известную ошибку:
В функции addNumbers()
изlib_2, неопределенная ссылка на getNumber()
Я действительно не понимаю, почему это неопределенная ссылка ??
И, кстати, мне действительно нужно ссылаться на lib_1 в моем приложении, когда оно уже ссылается на lib_2, которая сама статически ссылается на lib_1?