cmake編譯總結1——CMakeLists.txt文件寫法


1. 頭文件指定

1.1 include_directories(path)

    包含程序編譯所需庫的頭文件:path——頭文件所在目錄;

  相當於Makefile中使用CFLAGS+=-Ipath;-Ipath,path——頭文件所在目錄。

  編譯時,查找優先級高於默認的/usr/include和/usr/local/include;

 

  舉例:如針對opencv2編譯,添加其頭文件為:

include_directories(/path/to/opencv/opencv2/include)
include_directories(/path/to/opencv/opencv2/include/opencv)

  上述方式也可寫為:

set(OpenCV_INCLUDE_DIRS
        /path/to/opencv/opencv2/include
        /path/to/opencv/opencv2/include/opencv)
include_directories(${OpenCV_INCLUDE_DIRS})

 

2. 庫文件指定

2.1 link_directories(path)

  指定程序編譯所需要的庫路徑,path——庫文件所在目錄;

  相當於Makefile中的LDFLAGS += -Lpath,path——庫文件所在目錄;

  也相當於LD_LIBRARY_PATH添加路徑的作用;

  舉例,包含opencv的庫路徑如下:

link_directories(dirPath1 dirPath2 ...)

 2.2 link_libraries(path)

  指定需要添加鏈接庫的庫文件的路徑;注意不是庫文件所在目錄,而是庫文件的路徑;

  包含Opencv的庫文件如下:

link_libraries(/path/to/lib/libopencv_ml.so)
link_libraries(/path/to/lib/libopencv_core.so)

  也可寫為:

set(OpenCV_LIBS
        /path/to/opencv2/lib/libopencv_ml.so
        /path/to/opencv2/lib/libopencv_core.so.2.4
        /path/to/opencv2/lib/libopencv_imgproc.so)
link_libraries(${OpenCV_LIBS})

 

 注:

include   ——頭文件相關;

link         ——庫文件相關;

directory ——目錄相關;

library     ——直接路徑相關;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM