2016-11-23 5 views
0

C++コードをコンパイルするためにandroid studioでcmakeを使用しようとしています。ターゲットにリンクする必要がある.soライブラリがあります。CMakeLists.txtを使用してprebuilt .soファイルをリンクする方法

私はcmakeのに新しいですし、これは私が持っているものです。

add_library(
    my_target 
    SHARED 
    ${SRCS} 
) 

find_library(
    SSL 
    apex_fips_libs/libccmssl.so 
) 

target_link_libraries(
    my_target 
    ${SSL} 
) 

フォルダ構造:

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

しかし、私は次のエラー取得しています:私はあることを理解し

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 

SSLfind_libraryとして設定されていません。.soが見つかりません、 しかし、なぜ?

私は絶対パスを使ってみました。誰かがこれを行う正しい方法を教えてくれますか?

ありがとうございます。

+1

ような何かをしようとする場合がありますか?あなたは明らかに* SSLを使っていますが、それを定義したり割り当てたりしているところはありません。その価値がどこから来ると思いますか?薄い空気? –

+0

@JesperJuhlコメントをお寄せいただきありがとうございます。私は、.soファイルが見つかった場合、SSLを設定する必要があると信じています - find_library( name1 [path1 path2 ...])を使用しています。 https://cmake.org/cmake/help/v3.0/command/find_library.html –

+0

おそらく 'find_library'は単にそれを見つけられません.. –

答えて

1

あなたがそこにそのライブラリがすでに組み込まれて持つことが保証されている場合は、おそらくこれが最も簡単な解決策

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

あるそうでなければ、あなたは明らかではないが、何より

find_library(SSL NAMES ccmssl PATHS ${CMAKE_SOURCE_DIR}/apex_fips_libs) 
target_link_libraries(my_target ${SSL}) 
関連する問題