make、Makefile

cc = gcc  #最简易的makefile文件,这个可以用来进行文件之间的简易构建和链接,生成我们所需要的执行文件;
prom = calc
deps = $(shell find ./ -name "*.h")
src = $(shell find ./ -name "*.c")
obj = $(src:%.c=%.o) #将所有的.c文件替换成.o文件。 $(prom): $(obj)
$(cc) -o $(prom) $(obj) %.o: %.c $(deps)
$(cc) -c $< -o $@ clean:
rm -rf $(obj) $(prom)
objects = main.o kbd.o command.o display.o/
insert.o search.o files.o utils.o edit: $(objects)
cc -o edit $(objects) main.o : defs.h
kbd.o : defs.h command.h
command.o : defs.h command.h
display.o : defs.h buffer.h
insert.o : defs.h buffer.h
search.o : defs.h buffer.h
files.o : defs.h buffer.h command.h
utils.o : defs.h .PHONY : clean
clean:
rm edit $(objects) #首先这个objects相当于一个宏定义来的,然后.o文件的后面可以省去.c文件,因为在makefile执行时,它是自动寻找依赖项,所以它会自动添加.c文件到.o的后面。 #简单版的makefile objects = main.o kbd.o command.o display.o/
insert.o search.o files.o utils.o edit: $(objects)
cc -o edit $(objects) $(objects) : defs.h
kbd.o command.o files.o : command.h
display.o insert.o search.o files.o : buffer.h .PHONY : clean
clean:
rm edit $(objects) #整个执行操作是:首先我们是根据文件的存活时间来判定的,首先.edit文件是最总的运行文件,它是最新的,.o文件时其次的执行文件,.c文件时依赖项。我们就是要通过这个makefile进行操作他们之间的关系,.c生成.o这个叫做编译(complie),再把大量的.o合成运行文件这个叫做链接(link)。 #工作方式:GNU的make工作时的运行步骤入下:(想来其他的make也是相似)
#、读入全部的Makefile。
#、读入被include的其他Makefile。
#、初始化文件里的变量。
#、推导隐晦规则,并分析全部规则。
#、为全部的目标文件创建依赖关系链。
#、依据依赖关系,决定哪些目标要又一次生成。
#、运行生成命令。 #规则的语法:
#targets : prerequisites
# command
#......
#或者是这样:
#targets : prerequisites
# command
#......

CMake、CMakefile

#PROJECT_SOURCE_DIR目录下的Cmakefile文件
#树目录如下图,首先bin是执行文件生成的地方,build是Makefile生成的地方,编写完CMakefile文件之后,就会去build目录下cmake .. make,就会生成文件,doc文件时用来存放文档的,image就是照片的地方,include是头文件,譬如自己编写的头文件main.h之类的,lib就是我们生成链接库的地方,src就是我们的源文件的地方。 #PROJECT_SOURCE_DIR根目录会有一个CMakeLists.txt文件,SRC目录下面也会有一个CMakeLists.txt文件,需要我们自己分别编写; #这个是再项目根目录下的CMakeLists.txt
#cmake verson
CMAKE_MINIMUM_REQUIRED(VERSION 3.7.)
#project name
PROJECT(main)
#head file path 头文件目录 #source directory 源文件目录
AUX_SOURCE_DIRECTORY(src DIR_SRCS) #使用了默认的g++指定编译器
SET(CMAKE_CXX_COMPILER "g++")
#指定编译选项
SET(CMAKE_BUILD_TYPE Debug)
#指定了编译目录
SET(PROJECT_BINARY_DIR ${PROJECT_SOURCE_DIR}/build) #指定了最总生成执行文件的目录
SET(EXEUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
#制定了生成链接库的目录
SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
#指定了包含的头文件的目录
INCLUDE_DIRECTORIES( ${PROJECT_SOURCE_DIR}/include)
#动态链接库或静态链接库的搜索路径,相当于指定gcc的L参数
LINK_DIRECTORIES(${PROJECT_SOURCE_DIR}/lib)
#添加子目录,这样就可以进入源码文件src目录可以继续构建
ADD_SUBDIRECTORY(${PROJECT_SOURCE_DIR}/src) ###但是遇到了一个问题就是不知道为什么生成的main是再/build/src/里面. #根目录下的SRC里面的CMakeLists.txt ADD_EXECUTABLE(main main.cpp) #增加OPENCV的依赖
FIND_PACKAGE(OpenCV 3.3. REQUIRED)
#指定OPENCV的头文件包含
INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS}) #动态链接到OPENCV的依赖库里面
TARGET_LINK_LIBRARIES(main
${OpenCV_LIBS}
)
#指定生成的链接的地方
SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib) #指定执行文件生成到bin中
#SET(EXECUTABLA_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) #生成静态库
ADD_LIBRARY(static_demo STATIC main.cpp) SET_TARGET_PROPERTIES(static_demo PROPERTIES OUTPUT_NAME "static") #生成动态库
ADD_LIBRARY(shared_demo SHARED main.cpp) SET_TARGET_PROPERTIES(shared_demo PROPERTIES OUTPUT_NAME "shared")



树莓派Opencv张正友棋盘标定法的更多相关文章

  1. Opencv 张正友相机标定傻瓜教程

    注: 程序所用的OpenCV版本是 2.4.10 ,3.0以上的版本可能会有不同 先贴一下完整的工程代码: #include "opencv2/core/core.hpp" #in ...

  2. 张正友相机标定Opencv实现以及标定流程&&标定结果评价&&图像矫正流程解析(附标定程序和棋盘图)

    使用Opencv实现张正友法相机标定之前,有几个问题事先要确认一下,那就是相机为什么需要标定,标定需要的输入和输出分别是哪些? 相机标定的目的:获取摄像机的内参和外参矩阵(同时也会得到每一幅标定图像的 ...

  3. OpenCV实现张正友相机标定源代码

    本源代码基于VC++和opencv Opencv2.4.13.6版本开发,实现张正友相机标定源代码,资源包括完整源代码和12张棋盘图片,完美运行.Opencv2.4.13.6安装包下载地址:http: ...

  4. SLAM入门之视觉里程计(6):相机标定 张正友经典标定法详解

    想要从二维图像中获取到场景的三维信息,相机的内参数是必须的,在SLAM中,相机通常是提前标定好的.张正友于1998年在论文:"A Flexible New Technique fro Cam ...

  5. 企业管理系统——第三周需求&原型改进_张正浩,黄锐斌

    企业管理系统——需求&原型改进,架构设计,测试计划 组员:张正浩,黄锐斌 一.需求&原型改进 1.给目标用户展现原型,与目标用户进一步沟通理解需求 我们的目标用户是公司管理员 场景:随 ...

  6. 【OpenCV-ANN神经网络自动驾驶】树莓派OpenCV神经网络自动驾驶小车【源码+实物】

    没错!这个是我的毕业设计!!! 整个电子信息学院唯一一个优秀毕业设计 拿到这里炫耀了 实物如下: 电脑端显示效果: 自动驾驶实现过程: 1. 收集图像数据.建立局域网,让主机和Raspberry Pi ...

  7. 从零开始一起学习SLAM | 神奇的单应矩阵

    小白最近在看文献时总是碰到一个奇怪的词叫“homography matrix”,查看了翻译,一般都称作“单应矩阵”,更迷糊了.正所谓:“每个字都认识,连在一块却不认识”就是小白的内心独白.查了一下书上 ...

  8. OpenCV相机标定和姿态更新

    原帖地址: http://blog.csdn.net/aptx704610875/article/details/48914043 http://blog.csdn.net/aptx704610875 ...

  9. opencv 61篇

    (一)--安装配置.第一个程序 标签: imagebuildincludeinputpathcmd 2011-10-21 16:16 41132人阅读 评论(50) 收藏 举报  分类: OpenCV ...

随机推荐

  1. [20180317]12c TABLE ACCESS BY INDEX ROWID BATCHED2.txt

    [20180317]12c TABLE ACCESS BY INDEX ROWID BATCHED2.txt --//简单探究12c TABLE ACCESS BY INDEX ROWID BATCH ...

  2. s面向对象的写法

    js面向对象的写法 一.在html中引入该js文件,使用时: <script> var BuyBw8Product = new buyBw8Product(); </script&g ...

  3. python基础、字符串和if条件语句,while循环,跳出循环、结束循环

    一:Python基础 1.文件后缀名: .py 2.Python2中读中文要在文件头写: -*-coding:utf8-*- 3.input用法      n为变量,代指某一变化的值 n = inpu ...

  4. PHP Excel导入数据到MySQL数据库

    数据导出已经有了,怎么能没有数据导入呢,同样使用TP5框架,首先需要下载phpexcel.zip,放到第三方类库目录vendor目录下,然后有一个页面可以让你选择要导入的Excel文件,然后点击导入按 ...

  5. Mybatis&orcale update语句中接收参数为对象

    Mybatis的 mapper.xml 中 update 语句使用 if 标签判断对像属性是否为空值. UserDTO是传过来参数的类型,userDTO是在mapperDao接口中给更新方法的参数起的 ...

  6. MATLAB插 值 法

    MATLAB插  值  法 作者:凯鲁嘎吉 - 博客园http://www.cnblogs.com/kailugaji/ 一.实验目的 二.实验原理 三.实验程序 四.实验内容 五.解答 1. 程序 ...

  7. SAP CRM 忠诚度相关表的关系图

    这是一张有关会员,积分,活动等内容的相关表的关系图,对相关的开发工作会有帮助. 原文标题:Table schema for managing customer loyality 本文链接:http:/ ...

  8. oracle的order by排序中空字符串处理方法

    1.缺省处理 Oracle在Order by 时缺省认为null是最大值,所以如果是ASC升序则排在最后,DESC降序则排在最前 2.使用nvl函数 nvl函数可以将输入参数为空时转换为一特定值,如 ...

  9. python六十三课——高阶函数之sorted

    演示sorted函数的使用,以及和sort的区别:我们将sorted和sort进行一番比较:相同点:它们都是来实现排序的操作(功能层面)不同点:列表中的sort函数,它执行完毕后会直接影响原本这个li ...

  10. dirty_background_ration 与 /proc/sys/vm/dirty_ratio

    wappiness的值的大小对如何使用swap分区是有着很大的联系的.swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,swappiness=100的时候表示积极的使用s ...