轉自:http://blog.csdn.net/michaelhan3/article/details/69568362
先列出我的CmakeLists.txt
注意,在CmakeLists.txt 裏,註釋用的是#
project(Camera_sugan) #工程名字
cmake_minimum_required(VERSION 2.6) #編譯最低cmake版本
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" ) #設置c++編譯器
find_package(OpenCV REQUIRED) #在整個電腦上找opencv包
include_directories( #包含頭文件路徑
./include/inudev/
./src/
)
set(SRC_LISTS #將所有的源文件列爲一個集合,集合名字叫做SRC_LISTS
./src/inuitive.cpp
./src/runCamera_Qfeeltech.cpp
)
add_library(libsugan ${SRC_LISTS}) #將集合裏的所有的源文件生成一個靜態庫,該靜態庫的名字libsugan,注意,在整個CmakeLists裏都要用libsugan這個
#名字來代替之前那個集合生成的庫。
target_link_libraries(libsugan #鏈接靜態庫需要的依賴庫
${OpenCV_LIBS}
${PROJECT_SOURCE_DIR}/lib/libCommonUtilities.so
${PROJECT_SOURCE_DIR}/lib/libInuStreams.so
)
#到此爲止就在程序中生成了一個名字爲libsugan的靜態庫,但是我們知道Linux下對庫的存儲格式是lib+name.a,所以我們生成的靜態庫名字爲libsugan,那麼
#存儲出來的結果就是liblibsugan.a,看着很彆扭,爲了大衆點,我們用下面這句,保證了存儲出來的靜態庫叫做libsugan.a,
#但是請千萬注意,在整個CmakeLists.txt裏
#如果想鏈接生成的這個庫必須使用 “add_library(libsugan ${SRC_LISTS})”指明的名字。
set_target_properties(libsugan PROPERTIES OUTPUT_NAME "sugan")
add_executable(demo ./src/main.cpp)
target_link_libraries(demo libsugan)