ubuntu下cmake自动化编译的一个例子
一个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)
ubuntu下cmake自动化编译的一个例子的更多相关文章
- ubuntu下code::blocks编译运行一个简单的gtk+2.0项目
在具体的操作之前,首先需要安装一些必要的软件.ubuntu下默认安装了gcc,不过缺少必要的Header file,可以在命令行中输入下面的指令安装build-essential套件:sudo apt ...
- ubuntu下使用反编译apk,工具dex2jar和jd-gui
ubuntu下使用反编译apk, 工具 1:通过apk-tool反编译出资源文件: http://code.google.com/p/android-apktool/ 2.首先使用dex2jar反编译 ...
- Ubuntu下使用gcc编译c文件,未识别cos,sin
Ubuntu下使用gcc编译c文件,虽然我调用了math.h的头文件,但是未识别cos,sin 报错:( fft.c ) /tmp/ccwXjD8C.o: In function `fft': fft ...
- 基于TDengine-ver-1.6.4.4在windows 10下cmake+msys2编译(windows cgo 使用)
目录 基于TDengine-ver-1.6.4.4在windows 10下cmake+msys2编译(windows cgo 使用) 背景 下载地址 仓库地址 安装部署 msys2 安装 配置环境变量 ...
- ffmpeg2.2在ubuntu下使用NDK编译——并在android工程下测试使用
作者:wainiwann 出处:http://www.cnblogs.com/wainiwann/ 本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则 ...
- Ubuntu 下安装opencv 编译后执行找不到库
在ubuntu下编译opencv程序后,执行报下面到错误:error while loading shared libraries: libopencv_core.so.2.4: cannot ope ...
- 搭建Ubuntu下c/c++编译环境【转】
1. 安装Ubuntu. 2. 安装gcc 方法一: sudo apt-get install build-essential 安装完了可以执行 gcc--version的 ...
- (1)Ubuntu下CloudCompare的编译
Ubuntu下,需要提前安装openGL和Qt 为了可视化操作,使用Cmake进行编译设置 将下载的CloudCompare文件夹下的cmakeList.txt用cmake作为打开方式 Cmake设置 ...
- ubuntu下Android反编译详细教程-apktool,dex2jar,jd-gui的使用
转载请注明出处:http://blog.csdn.net/fightlei/article/details/52432161 最近在学习Android反编译的一些知识,虽然在网上搜到了很多相关的文章, ...
随机推荐
- LeetCode212. Word Search II
https://leetcode.com/problems/word-search-ii/description/ Given a 2D board and a list of words from ...
- f'lask源码
上下文本质 ? 1 2 3 4 5 6 7 8 - 当请求过来后,将请求相关数据添加到 Local()类中 { 线程或协程唯一标识:{"stack":[re ...
- Power BI连接至Amazon Redshift
一直在使用Power BI连接至MongoDB中,但效果一直不是太理想,今天使用另一种方法,将MongoDB中的数据通过Azure Data Factory转入Amazon Redshift中,而在P ...
- C# CreateProcess的测试
很奇怪的一个现象,在C#中使用Process来启动进程,启动文件名必须是系统指定的扩展名.EXE,而我使用原生的Win32API ::CreateProcess ()并没有这个限制,以后遇到类似的问题 ...
- 初始pip
关于pip包括下面的东西还不是很懂,慢慢的了解,我的pip是从https://bootstrap.pypa.io/get-pip.py 粘贴并命名为 get-pip.py 后,执行 python ge ...
- Luogu P4148 简单题(K-D Tree)
题面 题解 因为强制在线,所以我们不能$cdq$分治,所以考虑用$KDT$,$KDT$维护一个矩阵,然后询问的时候如果当前矩形在询问区间内,直接记贡献,否则判断当前点是否在矩阵内,然后左右分别递归下去 ...
- 安卓android破解方法
韩梦飞沙 yue31313 韩亚飞 han_meng_fei_sha 313134555@qq.com 如何给smali文件中的unicode字符串添加中文注释 如何注释掉smali文件中包含关键字 ...
- ZOJ 3057 Beans Game 博弈论 sg函数
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3057 典型的sg函数,数据范围卡得真好啊 代码 #include<c ...
- [BZOJ 3326] 数数
Link: BZOJ 3326 传送门 Solution: 明显是一道数位$dp$的题目,就是递推式复杂了点 先要求出一个数$\bar{n}$向添加一位后的$\bar{np}$的转化关系 令$res[ ...
- STL的常用用法、函数汇总(不定时更新)
隶书文字为原创. 1.vector 在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结. 1 基本操作 (1)头文件#include<vector>. (2)创建vec ...