一个CMakeLists.txt的例子
参考:
https://www.hahack.com/codes/cmake/
https://blog.csdn.net/afei__/article/details/81201039

项目目录

-test

  -include

    -math.hpp

  -src

    -math.cpp

  main.cpp

  CMakeLists.txt

math.hpp:

 double power(double base, int exponent);

math.cpp:

 #include <math.hpp>

 double power(double base, int exponent)
{
int result = base;
int i; if (exponent == ) {
return ;
} for(i = ; i < exponent; ++i){
result = result * base;
} return result;
}

main.cpp:

 #include <opencv2/opencv.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
#include <math.hpp> using namespace std;
using namespace cv; int main(){
cout<<CV_VERSION<<endl;
Mat im=imread("test.jpg");
if(!im.empty())
cout<<"读取图片成功"<<endl;
else
cout<<"读取图片失败"<<endl;
double res=power(,);
cout<<res<<endl;
return ;
}

CMakeLists.txt:

#指定cmake 版本
CMAKE_MINIMUM_REQUIRED(VERSION 3.2)
#指定项目名称,一般和项目的文件夹名称对应
PROJECT(test) #头文件目录
INCLUDE_DIRECTORIES(include /usr/local/include/)
#等价的设置方式
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I$/usr/local/include") #链接库路径
LINK_DIRECTORIES(/usr/local/lib/)
#等价的设置方式
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -L$/usr/local/lib") #查找到指定的预编译库,并将它的路径存储在变量中
FIND_LIBRARY(OPENCV_LIB_PATH opencv_core)
MESSAGE(${OPENCV_LIB_PATH})#/usr/local/lib/libopencv_core.so #源文件目录
AUX_SOURCE_DIRECTORY(. SRC_LIST)
#也可以这样匹配
#FILE(GLOB SRC_LIST "*.cpp" "src/*.cpp") #添加子目录,子目录里有另一CMakeLists.txt待编译
#ADD_SUBDIRECTORY(src) #生成链接库,可以指定SHARED,STATIC参数
#ADD_LIBRARY(math STATIC math.cpp)
ADD_LIBRARY(math SHARED src/math.cpp) #设置一些变量SET,LIST(APPEND/REMOVE_ITEM)
#SET(SRC_LIST main.cpp)
#LIST(APPEND SRC_LIST src/math.cpp)
#LIST(REMOVE_ITEM SRC_LIST src/math.cpp)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -g")
SET(OPENCV_LIBS opencv_highgui opencv_imgcodecs opencv_core) #添加要编译的可执行文件
ADD_EXECUTABLE(main ${SRC_LIST}) #添加可执行文件所需要链接的库
TARGET_LINK_LIBRARIES(main ${OPENCV_LIBS} math)

最新文章

  1. 玩转Windows服务系列——无COM接口Windows服务启动失败原因及解决方案
  2. (翻译)Emacs Hooks
  3. js 防止页面后退的方法
  4. linux 下网站压力测试工具webbench
  5. javascript 写职责链
  6. Little Busters! — 并查集
  7. Linux下长时间ping网络加时间戳并记录到文本(转)
  8. ie的selectNodes函数和firefox的document.evaluate
  9. CSDN帐号被盗尚未?
  10. 印象烟大PPT大赛
  11. 使用JenKins实现自动执行python脚本
  12. 关于web-root和web-inf的用处
  13. vins-mono代码解读
  14. 题说proxy
  15. Android学习笔记--通过wifi向服务器端发送数据
  16. 用yum下载rpm包(不安装)到制定目录
  17. Notes on PEP333 (Python Web Server Gateway Interface)
  18. JavaScript第三天 boolean和json
  19. Python基础(3) - 数据类型:5字典类型
  20. x264_param_t结构体解释,设置及对应函数位置

热门文章

  1. Django web框架之模板继承
  2. Redis实现分布式锁 php
  3. 关于自建yum源拾遗
  4. 【转载】文件下载FileDownloader
  5. Flask实战第68天:项目上线部署
  6. ProxyStrike运行bug解决办法
  7. java中ThreadLocal类的使用
  8. java 抽象方法 能用 静态 static 修饰,或者 native 修饰 么
  9. Minimum Height Trees -- LeetCode
  10. fastjson生成json时Null属性不显示的解决方法