2017-01-10 12 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.

Я также попробовать target_link_libraries ($ {} PROJECT_NAME SQLAPI), но это дает мне дополнительный «пропуск несовместимыми //usr/local/lib/libsqlapi.so» (и то же самое для .a) с не может найти - lsqlapi

+1

'target_link_libraries ($ {PROJECT_NAME} sqlapi)'? Вы хотите связать '-lsqlapi', а не' -llibsqlapi'. – pSoLT

+0

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

+0

@pSoLT Я действительно пробовал это раньше, но редактировал мой пост сейчас, спасибо. – kassio

ответ

0

Хорошо, я изменю свое редактирование в ответ:

причиной линкер жаловался был тот факт, что вы указали библиотеку в неправильном порядке. lib - просто префикс - если вы используете target_link_libraries, вы используете остальную часть имени библиотеки. Переход к

target_link_libraries(${PROJECT_NAME} sqlapi)

решить эту проблему. Ошибка появляется в настоящее время

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

, скорее всего, вызван тем, что вы скопировали все файлы из некоторого пакета предварительно сборки и она не совместима с вашей системой. Вам необходимо перекомпилировать библиотеку самостоятельно.