#设置库的路径,电脑里有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的更多相关文章

  1. CMake Intro - CMakeLists.txt

    Notes:  directory structure:  cmake, cmake/Tutorial, cmake/Tutorial/MathLibs 1. File lists in cmake/ ...

  2. Ros学习——Cmakelists.txt文件解读

    1.过程 .Required CMake Version (cmake_minimum_required) //CMake 需要的版本 .Package Name (project()) //#定义工 ...

  3. CMake之CMakeLists.txt编写入门

    自定义变量 主要有隐式定义和显式定义两种. 隐式定义的一个例子是PROJECT指令,它会隐式的定义< projectname >_BINARY_DIR和< projectname & ...

  4. Cmake知识----编写CMakeLists.txt文件编译C/C++程序

    1.CMake编译原理 CMake是一种跨平台编译工具,比make更为高级,使用起来要方便得多.CMake主要是编写CMakeLists.txt文件,然后用cmake命令将CMakeLists.txt ...

  5. [CMAKE] 详解CMakeLists.txt文件

    [快速查询]https://cmake.org/cmake/help/v2.8.8/cmake.html#section_Commands 1 CMake简介 CMake是跨平台编译工具,比make更 ...

  6. Cmake知识----编写CMakeLists.txt文件编译C/C++程序(转)

    1.CMake编译原理 CMake是一种跨平台编译工具,比make更为高级,使用起来要方便得多.CMake主要是编写CMakeLists.txt文件,然后用cmake命令将CMakeLists.txt ...

  7. CMakeLists.txt使用

    背景:C++代码在编译的过程中需要进行文件的包含,该文主要介绍CMakeLists.txt相关语法 CMake之CMakeLists.txt编写入门

  8. CMake学习笔记四:usb_cam的CMakeLists解析

    最近在学习cmake,在完整看了<cmake实践>一书后,跟着书上例程敲了跑了一遍,也写了几篇相关读书笔记,算是勉强基本入门了.所以找了usb_cam软件包的CMakeLists.txt来 ...

  9. CMAKE 生成VS2008静态库工程 与 CMAKE使用,CMakeLists.txt编写总结

    cmake -G"Visual Studio 9 2008 Win64" 以上命令得用cd命令切换到顶层CMakeLists.txt的当前目录,才能生效 以下是CMakeLists ...

随机推荐

  1. asp.net core-6.Bind读取配置文件到C#实例中

    1,创建asp.net core web应用程序,选择空网站 2,创建一个appsettings.json文件 为什么要叫appsettings.json呢?因为在Iwebhost启动的时候没有添加任 ...

  2. 分布排序(distribution sorts)算法大串讲

    ref : https://dsqiu.iteye.com/blog/1707383   本文内容框架: §1 鸽巢排序(Pigeonhole) §2 桶排序(Bucket Sort)   §3 基数 ...

  3. Mac电脑配置相关及软件工具安装推荐

    iTerm2(https://www.iterm2.com/) 终端工具 Alfred(http://xclient.info/s/alfred.html) 快速启动器 WebStorm.VSCode ...

  4. ORA-07445: exception encountered: core dump [opiaba()+639] [SIGSEGV] [ADDR:0x0] [PC:0x1858C3F] [SI_KERNEL(general_protection)] []

    开发反馈应用无法连接数据库,发现数据库实例崩溃,且数据库为11.2.0.4 单实例. 数据库告警日志发现,数据库崩溃之前出现ORA- ORA-: exception encountered: core ...

  5. Linux 安装Mysql(图文教程)

    原文:Linux 安装Mysql(图文教程) 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net ...

  6. tint2

    #---------------------------------------------# TINT2 CONFIG FILE#---------------------------------- ...

  7. [NOIP2018模拟赛10.23]发呆报告

    闲扯 考场看了眼题目感觉很难,一个小时敲完了所有暴力...嗯然后就在那里发呆什么事也没做 T3考场上把数据结构想了个遍都不会完成1操作,现在看这种思路其实之前也接触过... 比较玄学的一件事情就是T1 ...

  8. springboot启动流程(二)SpringApplication run方法核心逻辑

    所有文章 https://www.cnblogs.com/lay2017/p/11478237.html run方法逻辑 在上一篇文章中,我们看到SpringApplication的静态方法最终是去构 ...

  9. 提高前端开发效率的N种方法

    一.使用固定的html模板和css公共样式 事先把模板建好,每次需要用的时候直接拿来就行,不再需要为浏览器兼容问题考虑太多时间 这里我整理了一套,希望对大家有帮助:http://www.cnblogs ...

  10. 如何判断是否是ssd硬盘?win10查看固态硬盘的方法

    转自:http://www.w10zj.com/Win10xy/Win10yh_7732.html 如何判断是否是ssd硬盘?在win10操作系统中我们该如何查看当前主机中安装的是固态硬盘还是机械硬盘 ...