Чтобы упростить зависимость, мы используем библиотеку-обертку, чтобы обернуть сторонние библиотеки, например, gradle. Например:
lib_wrapper -> третьи стороны libs
A -> libWrapper
B -> libWrapper
Таким образом, A, B могут использовать функции в третьей стороне , Но я записал файл camke, который я написал, не работает.
Файл cmake lib_wrapper:
project(lib_wrapper)
# emty.c is an empty c file, do not use any ib_thirdparty funciton
add_library(lib_wrapper SHARED empty.c)
target_link_libraries(lib_wrapper lib_thirdparty1.a)
target_link_libraries(lib_wrapper lib_thirdparty2.a)
target_link_libraries(lib_wrapper lib_thirdparty3.a)
Файл camke A:
project(alib)
add_library(A SHARED a.c)
# add dependency
add_subdirectory(${lib_wrapper_path} lib_wrapper/out)
add_dependencies(alib lib_wrapper)
add_library(lib_wrapper_import SHARED IMPORTED)
set_target_properties(lib_wrapper_import PROPERTIES IMPORTED_LOCATION "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib_wrapper_import.so")
target_link_libraries(alib lib_wrapper_import)
Я также пробую PUBLI C или ключевое слово INTERFACE в target_link_libraries
, но оно не работает. Может ли кто-нибудь помочь мне?