如果使用gcc进行单个c文件编译的时候,有时候后面会需要添加如-L -l之类的参数,如下
gcc -o test test.c -L/usr/local/lib/ -lopencv
这里-L是制定动态库的位置,-l则是指定打算连接的动态库名字。
那么在进行项目编译的时候就需要通过cmake来通过Cmakelist.txt引导make进行项目编译。
那么就需要在cmakelists.txt文件内添加动态链接库的配置,具体参数如下
1、首先申明动态库的位置
LINK_DIRECTORIES({your_library_path})
例:
LINK_DIRECTORIES(/usr/local/lib)
2、然后制定具体的动态库的名称
target_link_libraries(${PROJECT_NAME} -l{library_name})
例:指定hiredis的动态链接文件 libhiredis.dylib
target_link_libraries(${PROJECT_NAME} -lhiredis)
最终的cmakelists.txt:
cmake_minimum_required(VERSION 3.2)PROJECT(edgepoint)INCLUDE_DIRECTORIES(includehiredis-master)AUX_SOURCE_DIRECTORY(src DIR_SRCS)add_subdirectory(hiredis-master)SET(EDGEPOINT${DIR_SRCS})LINK_DIRECTORIES(/usr/local/lib/)ADD_EXECUTABLE(${PROJECT_NAME} ${EDGEPOINT})target_link_libraries(${PROJECT_NAME} -lhiredis)TARGET_LINK_LIBRARIES(${PROJECT_NAME} m)