C++ 包含外部库cmake

C++ 包含外部库cmake,c++,cmake,include,linker-errors,C++,Cmake,Include,Linker Errors,我想使用SQLAPI库,我已将include目录中的所有文件复制到usr/local/include/SQLAPI,并将lib目录中的所有文件复制到usr/local/lib。lib文件名为libsqlapi.a/libsqlapi.so和libsqlapiu.a/libsqlapiu.so 我的cmakeLists.txt如下所示: project(gsl_test) cmake_minimum_required(VERSION 2.8) SET(CMAKE_CXX_FLAGS "-std=

我想使用SQLAPI库,我已将include目录中的所有文件复制到usr/local/include/SQLAPI,并将lib目录中的所有文件复制到usr/local/lib。lib文件名为libsqlapi.a/libsqlapi.so和libsqlapiu.a/libsqlapiu.so

我的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_库(${PROJECT_NAME}sqlapi),但它给了我额外的“跳过不兼容的//usr/local/lib/libsqlapi.so”
(与.a相同)使用找不到-lsqlapi确定后,我将更改我的编辑为答案:

链接器抱怨的原因是您以错误的方式指定了库
lib
只是前缀-如果使用
target\u link\u库
则使用库名称的其余部分。改为

target\u link\u库(${PROJECT\u NAME}sqlapi)

解决了这个问题。您现在收到的错误

正在跳过不兼容的//usr/local/lib/libsqlapi.so


最可能的原因是您复制了某个预构建包中的所有文件,并且与您的系统不兼容。您需要自己重新编译库。

target\u link\u库(${PROJECT\u NAME}sqlapi)
?你想链接
-lsqlapi
,而不是
-llibsqlapi
。试试find_library@pSoLT我以前试过,但现在编辑了我的帖子,谢谢。