CMake学习笔记
目錄
CMake構建項目:
CMAKE_SYSTEM_NAME
OpenCV配置
CMake構建項目:
項目結構:https://github.com/PanJinquan/opencv-learning-tutorials/tree/master/cmakeDemo
根目錄CmakeLists.txt:
cmake_minimum_required(VERSION 3.5) # 參考資料: # http://www.hahack.com/codes/cmake/ # https://blog.csdn.net/weicao1990/article/details/72844995project(cmakeDemo)# 指定頭文件目錄 include_directories(${PROJECT_SOURCE_DIR}/include)# 指定可執行文件的輸出目錄,輸出到bin下面 ? #set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)#指定庫文件輸出路徑 ? #set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)# 將myhello子工程加入到主工程,里面必須含有CMakeLists.txt文件 add_subdirectory(myhello)#指定可執行文件的輸出目錄,輸出到bin下面 ? set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)#指定庫文件輸出路徑 ? set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)set(LIB_MY my_lib)# 在指定目錄下查找庫,并保存在LIBPATH變量中: # find_library (<VAR> name1 [path1 path2 ...]) # find_library(LIB_MY my_lib ${PROJECT_SOURCE_DIR}/lib)# 構成可執行文件 add_executable(Demo main.cpp)# 鏈接的庫文件 # link_libraries( ${LIB_MY})# 添加鏈接庫:將子模myhello鏈接到Demo中 #target_link_libraries (Demo ${LIB_MY_LIB}) target_link_libraries (Demo ${LIB_MY})myhello目錄的CMakeLists.txt文件
cmake_minimum_required(VERSION 3.5) # 常用的變量: # . 表示當前目錄 # ${PROJECT_SOURCE_DIR}:工程的根目錄 ?# 指定頭文件目錄,PROJECT_SOURCE_DIR為工程的根目錄 ? include_directories(${PROJECT_SOURCE_DIR}/include)#指定可執行文件的輸出目錄,輸出到bin下面 ? set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)#指定庫文件輸出路徑 ? set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)# 將指定的源文件生成鏈接文件myhello # add_library(myhello myhello.cpp) # 更加便捷的方法是使用aux_source_directory(<dir> <variable>) # 查找當前目錄下的所有源文件,并將名稱保存到 DIR_SRCS 變量中 aux_source_directory(${PROJECT_SOURCE_DIR}/myhello DIR_SRCS)add_library(my_lib ${DIR_SRCS}) #set_target_properties(my_lib PROPERTIES OUTPUT_NAME "my_lib")CMAKE_SYSTEM_NAME
# build for platform if(CMAKE_SYSTEM_NAME MATCHES "Android")add_definitions(-DPLATFORM_ANDROID) elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")add_definitions(-DPLATFORM_LINUX) elseif(CMAKE_SYSTEM_NAME MATCHES "Windows")add_definitions(-DPLATFORM_WINDOWS) endif()OpenCV配置
(1)Linux編譯和安裝
cd opencv-4.5.0 mkdir build cd build cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local .. # cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON .. sudo make sudo make installCMake配置
# opencv set find_package(OpenCV REQUIRED) include_directories(${OpenCV_INCLUDE_DIRS} ./src/)(2)Android配置
# opencv set # copy `OpenCV-android-sdk/sdk` to `3rdparty/opencv/` set(OpenCV_DIR ${CMAKE_SOURCE_DIR}/3rdparty/opencv/sdk/native/jni) find_package(OpenCV REQUIRED) include_directories(${CMAKE_SOURCE_DIR}/3rdparty/opencv/sdk/native/jni/include)?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
總結
- 上一篇: TNN API说明文档
- 下一篇: RKNN Toolkit使用教程