CMakeLists.txt
示例(在编写CMakeLists.txt前, 创建好src, include, lib, bin, build目录, 其中cmake ..在build目录中执行)
# 一般都会先声明cmake的版本
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
PROJECT(hello_world)
# Release 和 Debug
IF(NOT CMAKE_BUILD_TYPE)
SET(CMAKE_BUILD_TYPE Release)
ENDIF()
# SET()用于赋值, 类似于 int a = 100
# SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
# SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
# AUX_SOURCE_DIRECTORY也是用于赋值, 只不过是特定于目录的
AUX_SOURCE_DIRECTORY(${PROJECT_SOURCE_DIR}/src SRC_DIR)
# 设置头文件路径
INCLUDE_DIRECTORIES(
${PROJECT_SOURCE_DIR}/include
)
# 指明编译的文件, 创建可执行文件
ADD_EXECUTABLE(main ${SRC_DIR})
# 在MakeFile文件中生成install伪目标指令
INSTALL(TARGETS main DESTINATION ${PROJECT_SOURCE_DIR}/bin)
INSTALL(FILES ${SRC_DIR} DESTINATION ${PROJECT_SOURCE_DIR}/share)
# 指明编译的文件, 创建库,
ADD_LIBRARY(libname SHARED lib_source_files)
# 添加库的查找目录
LINK_DIRECTORIES(/usr/local/lib)
# 连接库文件
TARGET_LINK_LIBRARIES(main lib_name)
# find_package命令, 让cmake自己找库
FIND_PACKAGE(OpenCV 3 REQUIRED)
# 使用C++的版本
ADD\_DEFINATION(-std=c++)
# 指明编译器
SET(CMAKE\_C\_COMPILER g++)
cmake等帮助
cmake --help-command-list 查看命令
cmake --help-variable-list 查看内置变量
OpenCV的配置
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
PROJECT(demo)
SET(CMAKE_BUILD_TYPE Release)
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
# 放cmake自己找, 加载模块成功之后就会新增加一些变量, OpenCV_LIBS, OpenCV_INCLUDE_DIRS, OpenCV_LIBRARY_DIRS
FIND_PACKAGE(OpenCV 3.4.1 REQUIRED)
INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS})
LINK_DIRECTORIES(${OpenCV_LIBRARY_DIRS})
AUX_SOURCE_DIRECTORY(${PROJECT_SOURCE_DIR}/src SRC_DIR)
ADD_EXECUTABLE(main ${SRC_DIR})
# OpenCV比较特殊, 下载了V3的, 里面会有V2和V3多个版本在一个目录下, 通过OpenCV_LIBS明确是哪些库, 接着直接连接, 所以我们也不需要上面的LINK_DIRECTORIES
TARGET_LINK_LIBRARIES(main ${OpenCV_LIBS})
INSTALL(TARGETS main DESTINATION ${PROJECT_SOURCE_DIR}/bin)

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
一统江湖的大前端(1)——PPT制作库impress.js
《一统江湖的大前端》系列是自己的学习笔记,旨在介绍javascript在非网页开发领域的应用案例和发现各类好玩的js库,不定期更新。如果你对前端的理解还是写写页面绑绑事件,那你真的是有点OUT了,前端能做的事情已经太多了, 手机app开发 , 桌面应用开发 , 用于神经网络人工智能的库 , 页面游戏 , 数据可视化 , 甚至 嵌入式开发 ,什么火就搞什么,绝对是专业的蹭热点小能手。 impress.js是什么 impress.js 是一款基于 css-3D 和 css动画 、受到高逼格PPT原型工具 prezi 启发而开发的演示文稿制作库,github上星星高达33k个,如果你已经厌烦了使用PowerPoint制作连自己都觉得丑的PPT,那么 impress.js 是一个非常好的选择,简洁高效逼格高。 获取impress.js库文件及官方示例请点击impress.js地址 关键API 下述api用于HTML标签属性,学习时直接对照官方代码仓中的example走一遍,看一遍示例代码,基本都能学会。 data-x = 幻灯片的x坐标 data-y = 幻灯片的y坐标 data-scale ...
-
下一篇
微信小程序开发系列教程三:微信小程序的调试方法
微信小程序开发系列教程 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信小程序开发系列二:微信小程序的视图设计 这个教程的前两篇文章,介绍了如何用下图所示的微信开发者工具自动生成一个Hello World的微信小程序,并讲解了这个自动生成的微信小程序的视图开发原理。 这个系列的下一步,会继续介绍这个微信小程序的控制器index.js的实现。在上一篇微信小程序视图源代码的讲解里,我们通过逐行讲解代码的方式,介绍了微信小程序视图的基本开发思路。但是讲控制器index.js, 仅仅采取静态的代码走查还不够,我们需要将微信小程序启动起来,通过单步调试的方式逐行讲解,通过控制器的调用上下文能对微信小程序的控制器实现有更深入的了解。 为此我们先要学会微信小程序的调试方法。 打开微信开发者工具,点击工具栏的“调试器”按钮: 开发者工具右边的区域现在从上到下一分为二:上面蓝色区域还是代码编辑页面,下面红色区域就是微信小程序的调试工具。 做过前端开发的朋友们,可以一眼就看出这其实就是Chrome的开发者工具。 我在我的微信公众号“汪子熙”上也写过一篇Chrome开发者工具的使用技巧介绍,感兴...
相关文章
文章评论
共有0条评论来说两句吧...