cmake 学习-cmakelists.txt
#设置库的路径,电脑里有qt4以及qt5,使用qt5时 设置qt5的环境变量(路径)。
set(CMAKE_PREFIX_PATH $ENV{QTDIR})
#设定工程名称
Project(proname)
#设置CMake最低版本要求
cmake_minimum_required(VERSION 3.6.) #设置需要用到的Qt模块 FIND_PACKAGE(Qt5Core)
#包含qt5core的头文件
include_directories(${Qt5Core_INCLUDE_DIRS}) #设置Boost静态库路径,电脑中有不同版本的boost选择自己需要的
SET(Boost_LIBRARY_DIRS $ENV{BOOST_ROOT16}/lib32-msvc-14.0)
SET(Boost_INCLUDE_DIRS $ENV{BOOST_ROOT16})
SET(Boost_LIBRARIES boost_date_time-vc140-mt-1_62.lib boost_date_time-vc140-mt-gd-1_62.lib)
#设置Qt包含的静态库
link_directories($ENV{QTDIR}\\lib)
set(QT_LIBRARIES Qt5::Core) #一些设置项
set(QT_USE_QTSQL TRUE) #增加宏定义
if(WIN32)
add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
endif(WIN32) add_definitions(-DPRONAME)
add_definitions(-DQT5) #定义变量
SET(CMAKE_BUILD_TYPE "Debug")
set(LIB_DIR ${PROJECT_SOURCE_DIR}/lib) #定义一些包含路径
SET(ANALYZER_SRC ${PROJECT_SOURCE_DIR}/src) #工具链
if(ARM)
SET(CMAKE_CXX_COMPILER arm-linux-g++)
endif() #添加子目录,进一步Make add_subdirectory(src) #多核编译
if(WIN32)
set_target_properties(proname PROPERTIES COMPILE_FLAGS "/MP")
else(WIN32)
endif(WIN32) src目录下cmakelists.txt
#创建一系列的变量
set(moc_files
1.h
2.h
)
set(header_files
1.h
2.h
)
set(source_files
1.cpp
2.cpp
)
#头文件路径
include_directories(
./
${PROJECT_SOURCE_DIR}
${Boost_INCLUDE_DIRS}
)
#通过include导入子文件
include("${CMAKE_CURRENT_SOURCE_DIR}/book2/CMakeLists.rules")
#moc
QT5_WRAP_CPP(HEADER_MOCS ${moc_files})
SOURCE_GROUP("moc_cxx" FILES ${HEADER_MOCS})
# HOST链接库路径
link_directories(${Boost_LIBRARY_DIRS} )
#最终目标文件
add_definitions ("-D${MYDLL}_LIB")
set(LIBRARY_OUTPUT_PATH ${LIB_DIR})
add_library(${MYDLL} SHARED ${moc_files} ${source_files} ${header_files} ${HEADER_MOCS})
target_link_libraries(${MYDLL} ${MYDLL_LINK_LIST}) # MYDLL_LINK_LIST通过set设置的一些lib
#多核编译
if(WIN32)
set_target_properties(${MYDLl} PROPERTIES COMPILE_FLAGS "/MP") #多核编译
else(WIN32)
endif(WIN32)
cmake 学习-cmakelists.txt的更多相关文章
- CMake Intro - CMakeLists.txt
Notes: directory structure: cmake, cmake/Tutorial, cmake/Tutorial/MathLibs 1. File lists in cmake/ ...
- Ros学习——Cmakelists.txt文件解读
1.过程 .Required CMake Version (cmake_minimum_required) //CMake 需要的版本 .Package Name (project()) //#定义工 ...
- CMake之CMakeLists.txt编写入门
自定义变量 主要有隐式定义和显式定义两种. 隐式定义的一个例子是PROJECT指令,它会隐式的定义< projectname >_BINARY_DIR和< projectname & ...
- Cmake知识----编写CMakeLists.txt文件编译C/C++程序
1.CMake编译原理 CMake是一种跨平台编译工具,比make更为高级,使用起来要方便得多.CMake主要是编写CMakeLists.txt文件,然后用cmake命令将CMakeLists.txt ...
- [CMAKE] 详解CMakeLists.txt文件
[快速查询]https://cmake.org/cmake/help/v2.8.8/cmake.html#section_Commands 1 CMake简介 CMake是跨平台编译工具,比make更 ...
- Cmake知识----编写CMakeLists.txt文件编译C/C++程序(转)
1.CMake编译原理 CMake是一种跨平台编译工具,比make更为高级,使用起来要方便得多.CMake主要是编写CMakeLists.txt文件,然后用cmake命令将CMakeLists.txt ...
- CMakeLists.txt使用
背景:C++代码在编译的过程中需要进行文件的包含,该文主要介绍CMakeLists.txt相关语法 CMake之CMakeLists.txt编写入门
- CMake学习笔记四:usb_cam的CMakeLists解析
最近在学习cmake,在完整看了<cmake实践>一书后,跟着书上例程敲了跑了一遍,也写了几篇相关读书笔记,算是勉强基本入门了.所以找了usb_cam软件包的CMakeLists.txt来 ...
- CMAKE 生成VS2008静态库工程 与 CMAKE使用,CMakeLists.txt编写总结
cmake -G"Visual Studio 9 2008 Win64" 以上命令得用cd命令切换到顶层CMakeLists.txt的当前目录,才能生效 以下是CMakeLists ...
随机推荐
- Pod——状态和生命周期管理及探针和资源限制
一.什么是Podkubernetes中的一切都可以理解为是一种资源对象,pod,rc,service,都可以理解是 一种资源对象.pod的组成示意图如下,由一个叫”pause“的根容器,加上一个或多个 ...
- PyCryptodome安装使用方法
PyCryptodome是PyCrypto的一个分支.基于PyCrypto2.6.1,多了以下特性: Authenticated encryption modes (GCM, CCM, EAX, SI ...
- R|批量循环处理同一格式文件-csv,txt,excel
本文首发于“生信补给站”微信公众号,https://mp.weixin.qq.com/s/8IfMrSr9xc8_1Y2_9Ne6hg 在一个文件夹下有很多字段一致,格式统一的数据文件(csv,txt ...
- ArrayList和CopyOnWriteArrayList(转载)
这篇文章的目的如下: 了解一下ArrayList和CopyOnWriteArrayList的增删改查实现原理 看看为什么说ArrayList查询快而增删慢? CopyOnWriteArrayList为 ...
- springboot启动流程(一)构造SpringApplication实例对象
所有文章 https://www.cnblogs.com/lay2017/p/11478237.html 启动入口 本文是springboot启动流程的第一篇,涉及的内容是SpringApplicat ...
- 空a标签在IE下无效之解决方法
过程就不分析了,只说解决方法: 1.给a标签添加样式:background:url(about:blank); 2.给a标签随便添加背景色或者背景图片,然后将a标签的透明度设置为0,不过在IE中需要使 ...
- 前端理解控制反转ioc
工作一直都是写前端,而且都是偏业务的.相关的框架代码层面的了解还是有很大的缺失.一直想多写些维护性,可读性强的代码. 这段时间对控制反转ioc,这样的设计有了一个初步的了解. 前端为弱语言,平时代码的 ...
- SQLiteDatabase执行update、insert操作的时候,conflictAlgorithm参数的含义区别
/** * When a constraint violation occurs, an immediate ROLLBACK occurs, * thus ending the current tr ...
- swoole深入学习 8. 协程 转
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/yangyi2083334/article/ ...
- 第四章、drf框架 - 三大认证组件 | 认证组件 | 权限组件 | 频率组件
目录 RBAC 基于用户权限访问控制的认证 - Role-Based Access Control 三大认证组件 源码分析 一.认证组件 自定义认证类 使用: 二.权限组件 自定义权限类 三.频率组件 ...