2016-11-23 1 views
0

Ich versuche Cmake mit Android Studio zu verwenden, um C++ - Code zu kompilieren, und ich habe eine .so-Bibliothek, die mit dem Ziel verknüpft werden muss.So verknüpfen Sie vorkompilierte .so-Dateien mit CMakeLists.txt

Ich bin neu in cmake und das ist, was ich habe:

add_library(
    my_target 
    SHARED 
    ${SRCS} 
) 

find_library(
    SSL 
    apex_fips_libs/libccmssl.so 
) 

target_link_libraries(
    my_target 
    ${SSL} 
) 

Struktur Folder:

-- Src 
    -- some.cpp 
    -- some2.cpp 
    -- CMakeLists.txt 
    -- apex_fips_libs 
     --libccmssl.so 

Aber ich bin immer folgende Fehlermeldung:

CMake Error: The following variables are used in this project, but they are set to NOTFOUND. 
Please set them or make sure they are set and tested correctly in the CMake files: 
    SSL 

Ich verstehe, dass SSL wird nicht eingestellt, da find_library die .so nicht findet , aber warum?

Ich habe sogar versucht, den absoluten Pfad zu verwenden. Kann mir jemand auf die richtige Art und Weise zeigen, dies zu tun?

Vielen Dank.

+1

versuchen Unklar ist? Sie verwenden offensichtlich * SSL *, aber nirgendwo definieren/zuweisen Sie es. Woher erwartest du seinen Wert? Dünne Luft? –

+0

@JesperJuhl Danke für das Kommentieren, ich benutze - find_library ( name1 [path1 path2 ...]), glaubte, dass sollte SSL für mich einstellen, wenn die .so-Dateien gefunden werden .. verkenne ich das? https://cmake.org/cmake/help/v3.0/command/find_library.html –

+0

Vielleicht 'find_library' findet es einfach nicht .. –

Antwort

1

Wenn Sie garantiert sind, da diese Bibliothek haben bereits gebaut dann vielleicht ist dies die einfachste Lösung

target_link_libraries(my_target ${CMAKE_SOURCE_DIR}/apex_fips_libs/libccmssl.so) 

Ansonsten möchten Sie vielleicht etwas mehr wie

find_library(SSL NAMES ccmssl PATHS ${CMAKE_SOURCE_DIR}/apex_fips_libs) 
target_link_libraries(my_target ${SSL}) 
Verwandte Themen