Reprint: CMake or Make】的更多相关文章

CMake vs Make https://prateekvjoshi.com/2014/02/01/cmake-vs-make/ Programmers have been using CMake and Make for a long time now. When you join a big company or start working on a project with a large codebase, there are all these builds that you nee…
公司引擎是用cmake根据目标平台来构建工程的,刚接触的时候深深体会到cmake的方便:如果目标平台是windows,它可以帮你自动构建出vs工程:如果是安卓,自动构建出eclipse工程,如果是IOS,自动构建出xcode工程.想想以前用vs建工程的时候,如果要引入第三方库,必须要手动配置第三方库路径,如果引入的库少,那还没什么,如果多的话就悲剧了,配个环境都要半天.再想想以前在linux平台下手动写Makefile的时候,如果工程比较小,模块少还好办,如果工程大,模块多,各种写依赖关系都要让…
使用CMake编译跨平台静态库 http://www.tuicool.com/articles/3uu2Yj cmake命令 安装.用法简介 https://fukun.org/archives/0421949.html cmake使用一 -- cmake语法 http://blog.csdn.net/kaizi318/article/details/7721660 CMake的使用 http://www.cppblog.com/tx7do/archive/2010/08/19/124000.h…
C++开发者必备技能CMake  先简单介绍一下,CMake是一个跨平台的编译工具,它可以根据不用的平台,不同的编译环境,生成不同的MakeFile,从而控制编译的过程. 使用CMake的步骤: 1.ccmake directory     //配置编译选项,这个命令不太常用,所以没有深入了解   2.cmake directory      //这个目录是CMkaeLists.txt所在的目录,用于生成MakeFile文件,实际使用首先要执行这个命令生成MakeFile,才能进行下一步编译工作…
对于一些已经解决的问题,本博客不再讨论.只将本人遇到的问题做简单的说明. 一.VS 2013编译64位版本QT 4.8.6 QT项目官网中,对于QT4,其只提供了windows X86的版本,并且支持VS2010及以下版本. 如果我们的开发环境是VS2010以上版本,使用QT4.8.6-VS2010库来进行开发的话,将会在编译的时候提示缺少msvcpxxx.dll等一系列缺少dll文件的错误,即使我们下载好了MS VC runtime.(以开发环境为VS2013,并使用QT4.8.6-VS201…
cmake 找不到package,如 find_package (OpenMesh REQUIRED) 出现错误 在项目的文件夹中找到 FindOpenMesh.cmake 文件,将其所在路径添加到 CMakeLists.txt 文件中 find_package (OpenMesh REQUIRED) 的前面,让cmake找到package即可. 如: list (APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/../.././cmake) 实际只要修改…
http://www.cmake.org/Wiki/CMake_Cross_Compiling…
查看官方文档 cmake命令 选项 CMake变量 CMake命令汇总 / add_custom_command add_custom_target/add_definitions/add_dependencies add_library/add_subdirectory/add_test/aux_source_directory/break build_command/cmake_minimum_required/cmake_policy configure_file/create_test_…
<CMake实践>笔记一:PROJECT/MESSAGE/ADD_EXECUTABLE <CMake实践>笔记二:INSTALL/CMAKE_INSTALL_PREFIX <CMake实践>笔记三:构建静态库与动态库 及 如何使用外部共享库和头文件 前言: 开发了5,6年的时间,如果没有KDE4,也许不会有人或者Linux发行版本重视cmake,因为除了Kitware似乎没有人使用它.通过KDE4的选型和开发,cmake逐渐进入了人们的视线,在实际的使用过程中,cmak…
<CMake实践>笔记一:PROJECT/MESSAGE/ADD_EXECUTABLE <CMake实践>笔记二:INSTALL/CMAKE_INSTALL_PREFIX <CMake实践>笔记三:构建静态库与动态库 及 如何使用外部共享库和头文件 四.更好一点的Hello World 没有最好,只有更好 从本小节开始,后面所有的构建我们都将采用 out-of-source 外部构建,约定的构建目录是工程目录下的build自录. 本小节的任务是让前面的Hello Wor…
<CMake实践>笔记一:PROJECT/MESSAGE/ADD_EXECUTABLE <CMake实践>笔记二:INSTALL/CMAKE_INSTALL_PREFIX <CMake实践>笔记三:构建静态库与动态库 及 如何使用外部共享库和头文件 五.静态库与动态库构建 读者云,太能罗唆了,一个Hello World就折腾了两个大节.OK,从本节开始,我们不再折腾Hello World了,我们来折腾Hello World的共享库. 本节的任务: 1.建立一个静态库和动…
cmake是一个跨平台的编译工具,特点是语句简单,编译高效,相对于原有的automake更为高效,接下来说明在Linux下安装cmake工具的过程 首先去cmake官网下载cmake安装包,下载界面网址为:https://cmake.org/download/ 这里下载最新版本的cmake-3.6.1.tar.gz下载完成之后上传到服务器 安装cmake之前应该系统中已经安装gcc和g++,否则无法编译cmake 首先解压cmake安装包并进入目录, .tar.gz cd cmake-/ 然后执…
上篇文章 小记了: 关于 Poco::TCPServer框架 (windows 下使用的是 select模型) 学习笔记. http://www.cnblogs.com/bleachli/p/4352959.html 这儿继续学习下,poco在linux 下用cmake 编译. 从文档开始编译出错 从poco的 README 文件上可知: " BUILDING ON UNIX/LINUX/MAC OS X=============================== For building o…
1. 使用QT加载CMake工程 打开QT,"文件"->"打开文件或项目"->选中CMakeLists.txt文件,出现对话框,单击下一步,点击"执行CMake",等待CMake执行完毕后单击完成即可加载整个工程 2. CMake中符号的查找 安装CMake后在share\cmake-3.7\Modules中会有find*.CMake文件来对相应的package进行查找 如"Threads"对应"Find…
1. 这是因为工程link不到network的库,因此除了要包含头文件    #include 之外,还需要在.pro文件中加入:    QT += network 2. 对于CMake,需添加Network相关package #"/home/Qt5.1.0/5.1.0/gcc"  QT5目录 set(CMAKE_PREFIX_PATH "/home/Qt5.1.0/5.1.0/gcc") find_package(Qt5Network REQUIRED) set(…
问题: CMake Error at CMakeLists.txt:3 (find_package): By not providing "FindOpenCV.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "OpenCV", but CMake did not find one. Could not…
Cmake的输入是在源码目录下的CMakeLists.txt文件.这个文件可以用include或者 add_subdirectory 命令增加入其它的输入文件. 语法 CMakeList.txt文件是由注释.命令和空白字符组成. 注释是由 # 开始,到行结尾. 命令是由:命令名.(.空格分隔的参数.)组成. 例如:command (args….) 上面的command可以是一个命令名:或者是一个宏:也可以是一个函数名. args是以空格分隔的参数例表(如果参数中包含空格,则要加双引号) 除了用于…
操作系统:Windows7,用到工具:Visual studio.CMake. 1.准备工作 VTK下载: 下载最新VTK稳定版(6.0.0,截至2013年7月)http://www.vtk.org/VTK/resources/software.html CMake下载和安装: 最新版的VTK不提供Windows下的installer ,需要自己构建(Build)和编译(Compile)源代码.这里用到一个小工具CMake,到官网下载并安装http://www.cmake.org/cmake/r…
win10 用cmake 3.5.2 和 vs 2015 update1 编译 GPU版本(cuda 8.0, cudnn v5 for cuda 8.0)  用vs 2015打开 编译Release和Debug版本 看网上那个例子里面 工程里面有是三个文件夹 include(包含mxnet,dmlc,mshadow的include目录) lib(包含libmxnet.dll, libmxnet.lib,把用vs编译好的放过去) python(包含一个mxnet,setup.py, 以及buil…
原因: 由于不想在真机环境和 ide中调试环境, 只想在linux端进行 调试和运行, 需要使用cmake对现有的游戏进行编译(cocos2dx-lua 3.4) 修改步骤: 1.修改framework下的 CMakeLists.txt 文件: 在 set(GAME_SRC 下填充对应游戏的cpp文件名称,需要包含相对路径 在 include_directories( 下添加 ${COCOS2D_ROOT}/cocos/scripting/lua-bindings/auto # 如果添加了 lu…
CMake Configuration Options 注: 本文翻译自 dcmtk_wiki: Howto_CMakeConfiguration. DCMTK版本(原文):dcmtk-3.6.0 CMAKE版本(原文):CMake-2.8.0 DCMTK版本(译者):dcmtk-3.6.0 DCMTK版本(译者):CMake-3.7.0 当我们准备用CMAKE编译DCMTK时,会显示一些配置选项.如果看起来没什么问题的话 ------ 哈哈哈,别担心,它还没配置好呢 :-) 下面将会是一个概览…
例子4:链接静态库(.lib) 例子3里面我们构建了date.lib, 这个例子里我们调用这个库. 前提: date.h的头文件在 E:\Playground\CMakeExamples\DateLib\include date.lib或date.dll文件在 E:\Playground\CMakeExamples\lib CMakeLists.txt里需要用到这两个地址. 文件结构: E:. │  CMakeLists.txt │ ├─build └─src         main.cpp…
例子3: 构建动态库(.dll) 静态库(.lib) 采用和例子2一样的文件,但删除了main.cpp E:.               │  CMakeLists.txt │                 ├─include         │      Date.h     │                 └─src                     date.cpp  修改CMakeLists.txt cmake_minimum_required(VERSION 3.5.2)…
例子2:有目录的项目 我现在有个文件夹ProjectDate,有如下文件结构 E:. │  CMakeLists.txt │ ├─include │      Date.h │ └─src         date.cpp         main.cpp include文件夹下是头文件Date.h #ifndef DATE_H #define DATE_H   class Date { private:     int m_year;     int m_month;     int m_da…
维基百科介绍“CMake是个开源的跨平台自动化建构系统,它用配置文件控制建构过程(build process)的方式和Unix的Make相似,只是CMake的配置文件取名为CMakeLists.txt.Cmake并不直接建构出最终的软件,而是产生标准的建构档(如Unix的Makefile或WindowsVisual C++的projects/workspaces),然后再依一般的建构方式使用.这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系…
在默认情况下,CMake构建的VS工程运行时会弹出控制台窗口,可以通过手动方式进行屏蔽,也可以通过CMake命令进行屏蔽. 手动方式:分为两步 第一步:右击VS项目,选择"属性"->"连接器"->"子系统"->"窗口(/SUBSYSTEM:WINDOES)" 第二步:选择"属性"->"连接器"->"高级"->"入口点&qu…
较大的工程文件中一般会调用动态库或者静态库,如果这些库文件是当前工程包含的项目,CMake会自动识别并添加Debug和Release编译时需要的库文件路径和文件名,可以使用命令: Target_Link_Libraries(${PROJECT_NAME} LibName) 但是如果要添加第三方库文件,Debug和Release文件的路径往往是不同的,但是文件名是相同的,上述方式只能配置一种情况. 如果要解决这个问题,需要使用Target_Link_Libraries的参数,用以区分Debug和R…
构建VS工程时预处理值是不可缺少的,如动态库的导出配置等.在通过CMake构建VS工程时,可以通过CMake命令进行定义,下面讲三种应用. 字符集:默认装填下VS工程是多字节字符集,如果需要使用Unicode字符集,可以用下面命令进行设置: Add_Definitions(-DUNICODE -D_UNICODE) 动态库导出:Lib_DLL为自定义变量名 Add_Definitions(-DLib_DLL) MFC的使用:如果在工程中调用了MFC的函数,需要配置在动态库中使用MFC或者在静态库…
使用Visual Studio构建Qt工程的方法有很多种,可以使用Visual Studio自带的功能手动创建配置工程,也可以创建pro文件,然后通过VS的Qt插件导入进行创建.还有一种方式是通过CMake进行管理创建,需要注意的是Qt5和Qt4有区别,这里只讲Qt5. #设置cmake版本号 cmake_minimum_required(VERSION ) #设置工程名称 project(HelloWorld) #设置工程包含当前目录,非必须 set(CMAKE_INCLUDE_CURRENT…
最近将项目迁移到CMake进行管理,对CMake进行了一些研究,觉得有一些命令非常实用但很少有资料提到,在这里做一个总结,至于太普通常用的命令就不提了. OPTION(OPTION_VAR "Description" [initial value]):用于管理编译选项,定义并初始化自定义变量. 例: OPTION(BUILD_TEST "Build the test project" ON) FIND_PATH(<VAR> name path1 path…