tutorial target_link_libraries link library example cmake shared-libraries static-linking

cmake - target_link_libraries - ¿Cómo puedo encontrar un nombre de biblioteca del archivo.so?



cmake tutorial (1)

Realice los siguientes pasos para vincular una lib existente a su destino:

  1. Informarle qué lib necesita: aquí perfilador.
  2. Construye el nombre de la lib. CMake realmente no necesita esto, pero vale la pena saber: Ejemplo en Unix / Linux lib + NAME + [.so | .a] [VERSION]. Aquí: libprofiler.so.
  3. En tu CMakeLists.txt:

    find_library(LIB_PROFILER NAMES profiler libprofiler.so libprofiler.so.V123) add_executable(MyApp ${SOURCES}) target_link_libraries(MyApp ${LIB_PROFILER})`

    El código anterior trata de encontrar una lib y comprueba el siguiente perfil de perfil, libprofiler.so y libprofiler.so.V123. Si se encuentra, la variable LIB_PROFILER apunta al archivo lib. Usa la variable como uno de los archivos vinculados a tu objetivo.

En tu código, también te perdiste el ${} alrededor de la variable.

Por ejemplo, tengo el archivo libprofiler.so . ¿Cómo puedo obtener el nombre de este objeto compartido como este?

getname /usr/lib/libprofiler.so

Quiero hacerlo porque es necesario para CMakeLists.txt en

target_link_libraries(MyProject name_of_library)