2017-01-10 32 views
0

私はSQLAPIライブラリを使いたいと思います。私はincludeディレクトリのすべてのファイルをusr/local/include/SQLAPIにコピーし、libディレクトリからusr/local/libにコピーしました。 libファイルの名前は、libsqlapi.a /libsqlapi.soおよびlibsqlapiu.a /libsqlapiu.soです。外部ライブラリを含むcmake

私cmakeLists.txtは、次のようになります。

project(gsl_test) 
cmake_minimum_required(VERSION 2.8) 

SET(CMAKE_CXX_FLAGS "-std=c++0x") 

aux_source_directory(. SRC_LIST) 
include_directories(usr/local/include) 
link_directories(usr/local/lib) 

add_executable(${PROJECT_NAME} ${SRC_LIST}) 
target_link_libraries(${PROJECT_NAME} libsqlapi) 

私は、ビルド/リンカエラーを取得:-llibsqlapiを見つけることができません。

また、私は($ {} PROJECT_NAME sqlapi)target_link_librariesを試しましたが、それは(.A用と同じ) 「互換性のない//usr/local/lib/libsqlapi.soを飛ばし、」私は追加できます見つけることができないと - lsqlapi

+1

'target_link_libraries($ {PROJECT_NAME} sqlapi)'? '-llibsqlapi'ではなく' -lsqlapi'をリンクしたいとします。 – pSoLT

+0

try find_library https://cmake.org/cmake/help/v3.0/command/find_library.html –

+0

@pSoLT私はこれを前に試しましたが、私の投稿を編集しました。ありがとうございました。 – kassio

答えて

0

OK]をクリックして、私は答えに私の編集を変更します:

をリンカが訴えの理由は、あなたが間違った方法でライブラリを指定しているという事実でした。 libは接頭辞です。target_link_librariesを使用する場合は、残りのライブラリ名を使用します。

target_link_libraries(${PROJECT_NAME} sqlapi)

に変更すると、その問題を解決しました。あなたは今

skipping incompatible //usr/local/lib/libsqlapi.so

を受信エラーはおそらくあなたには、いくつかのビルド前のパッケージからすべてのファイルをコピーして、それはあなたのシステムと互換性がないことに起因します。あなた自身でライブラリを再コンパイルする必要があります。

関連する問題