cmake 連結動態連結庫

峻峰飛陽發表於2019-04-08

使用相對路徑的時候,你要讓cmake能夠搜尋到找到你動態庫,就像直接使用gcc/g++來連結的時候一樣,要使用-L來指定第三方庫所在路徑。
cmake可以使用  LINK_DIRECTORIES 命令來指定第三方庫所在路徑,比如,你的動態庫在
/home/myproject/libs
這個路徑下,則通過命令:
LINK_DIRECTORIES(/home/myproject/libs)
把該路徑新增到第三方庫搜尋路徑中,這樣就可以使用相對路徑了,使用TARGET_LINK_LIBRARIES的時候,只需要給出動態連結庫的名字就行了,比如:
TARGET_LINK_LIBRARIES(MyApp -lcurl )


cmake_minimum_required (VERSION 2.8) 

PROJECT(WebcamFaceRec)

# Requires OpenCV v2.4.1 or later
FIND_PACKAGE( OpenCV REQUIRED )
IF (${OpenCV_VERSION} VERSION_LESS 2.4.1)
    MESSAGE(FATAL_ERROR "OpenCV version is not compatible : ${OpenCV_VERSION}. FaceRec requires atleast OpenCV v2.4.1")
ENDIF()

SET(SRC
    main.cpp
    detectObject.cpp
    preprocessFace.cpp
    recognition.cpp
    ImageUtils_0.7.cpp
)

#ADD_EXECUTABLE( ${PROJECT_NAME} ${SRC} )
LINK_DIRECTORIES(/usr/lib/arm-linux-gnueabihf)
ADD_EXECUTABLE( ${PROJECT_NAME} ${SRC} )
target_link_libraries(${PROJECT_NAME} -lmysqlclient)
TARGET_LINK_LIBRARIES( ${PROJECT_NAME}  ${OpenCV_LIBS} ${LD_LIBRARY_PATH})
 

相關文章