cmake vs qmake】的更多相关文章

作者:玟清链接:https://www.zhihu.com/question/27455963/answer/36722992来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 1. make 是用来执行Makefile的2. Makefile是类unix环境下(比如Linux)的类似于批处理的"脚本"文件.其基本语法是: 目标+依赖+命令,只有在目标文件不存在,或目标比依赖的文件更旧,命令才会被执行.由此可见,Makefile和make可适用于任意工作,不…
1. make 是用来执行Makefile的.2. Makefile是类unix环境下(比如Linux)的类似于批处理的"脚本"文件.其基本语法是: 目标+依赖+命令,只有在目标文件不存在,或目标比依赖的文件更旧,命令才会被执行.由此可见,Makefile和make可适用于任意工作,不限于编程.3. Makefile+make可理解为类unix环境下的项目管理工具,但它太基础了,抽象程度不高,而且在windows下不太友好(针对visual studio用户),于是就有了跨平台项目管理…
qmake 是为 Qt 量身打造的,使用起来非常方便 cmake 使用上不如qmake简单直接,但复杂换来的是强大的功能 内置的 out-of source 构建.(目前QtCreator为qmake也默认启用了该功能.参考:浅谈 qmake 之 shadow build) 为各种平台和场景提供条件编译 可处理多个可执行文件情况,和很好配合 QtTest 工作 如何选择? Using CMake to Build Qt Projects 一文中说: 对简单的Qt工程,采用 qmake 对复杂度超…
原文:https://www.zhihu.com/question/27455963 作者:玟清链接:https://www.zhihu.com/question/27455963/answer/36722992来源:知乎著作权归作者所有,转载请联系作者获得授权. 1. make 是用来执行Makefile的2. Makefile是类unix环境下(比如Linux)的类似于批处理的"脚本"文件.其基本语法是: 目标+依赖+命令,只有在目标文件不存在,或目标比依赖的文件更旧,命令才会被执…
cmake vs qmake qmake 是为 Qt 量身打造的,使用起来非常方便 cmake 使用上不如qmake简单直接,但复杂换来的是强大的功能 内置的 out-of source 构建.(目前QtCreator为qmake也默认启用了该功能.参考:浅谈 qmake 之 shadow build) 为各种平台和场景提供条件编译 可处理多个可执行文件情况,和很好配合 QtTest 工作 如何选择? Using CMake to Build Qt Projects 一文中说: 对简单的Qt工程…
shadow build shadow build 是什么东西?就是将源码路径和构建路径分开(也就是生成的makefile文件和其他产物都不放到源码路径),以此来保证源码路径的清洁. 这不是qmake独创的东西,cmake中早就使用这个东西了   cmake qmake 备注 in-source cmake . qmake project.pro 在源码路径下执行 out-of-source(shadow-build) mkdir build cd buildcmake ../project m…
希望这是现阶段阻碍阅读shiboken和PySide源码的涉及cmake的最后一个障碍 ^ _^ 学习 cmake 的单元测试部分 ctest. 简单使用 最简单的使用ctest的方法,就是在 CMakeLists.txt 添加命令: enable_testing() 该命令需要在源码的根目录文件内. 从这一刻起,就可以在工程中添加add_test命令了 add_test(NAME <name> [CONFIGURATIONS [Debug|Release|...]] [WORKING_DIR…
cmake编译OpenCV工程 首先我们看到文件夹中有一cpp文件,CMakeLists.txt文件和一张图片 首先进行cmake .命令 接着进行make命令 . 然后就得到了可执行文件,也就是说可执行文件是make出来的 然后./opencv_example执行就OK咯~ Linux下C++文件编译 方法一: g++ xx.cpp 默认会生成a.out的可执行文件 方法二: cmake/make…
译:用CMake构建Qt项目作者: Johan Thelin  译者:赖敬文原链接:http://developer.qt.nokia.com/quarterly/view/using_cmake_to_build_qt_projects翻译来源:http://blog.csdn.net/jingwenlai_scut          QtSDK中已经包含了QMake用于处理跨平台的编译问题.然而,还存在其它编译工具,比如autotools,SCons和CMake.这些工具满足不同的需求,比如…
       我前面说了很多如何用gcc或 Makefile怎么编译的东东,但在Linux下装过软件的都应当见过,很多源码安装的包是用Automake 来编译的.输入下"./configure","make","make install"就装上了.Automake就是有群人觉得写Makfile不方便,特别是工程文件多 目录复杂时.所以就搞了这么个自动生成Makefile的开源的东东.类似的工具还有cmake和qmake.      Automak…
根据VisualGDB官网(https://visualgdb.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家指正. 本文总体介绍VisualGDB能给你带来哪些好处. 1 方便跨平台开发 VisualGDB和Visual Studio相结合,使得跨平台开发非常容易和简便.支持以下特性: 嵌入式Barebone系统和IoT模块: C/C++ Linux应用程序: 原生Android应用程序及库: Raspbery Pi及其他的Linux boards:…
KDE Frameworks 基于QT框架,提供简单实用的类(例如那些KCoreAddons里的类)去为桌面应用的日常需要整合出解决方案(例如KNewStuff用于在应用中获取可下载的附加内容,或者那个强大的KIO多协议文件访问框架). KDE Frameworks 可以被用于基于CMake和QMake的工程中,其中大部分至少可用于Windows, Mac 和 Linux.每个子框架的文档已经写明如何在QMake和CMake的工程中加入对应的框架. 这些子框架根据它们的依赖被分为四个等级,例如:…
1.在开始动手编译ffmpeg之前我们来梳理一下几个概念,gcc.g++.msvc.mingw.clang.cmake.make.qmake 作为一个windows软件工程师,以为长时间浸淫在各种强大的IDE的世界里,对编译的过程和相关的工具链还是相当陌生的.上面举出来的几个词语是自己在要编译各种平台的库的时候遇到的,因为Qt是跨平台的,所以要求相关的库也要跨平台: gcc/g++ 是c和c++对应的编译器,完成代码的编译和链接过程,clang也可以用来编译c++ oc,编译oc的时候效率是gc…
环境配置 环境配置 Windows上:QT5 + CLion 硬件上:一只可联网.可ssh连接且装有QT5的树莓派 暂时还没想好... 树莓派安装qt sudo apt-get update sudo apt-get upgrade sudo rpi-update 以上为更新源.包,一般只进行第一步即可 sudo apt-get install qt5-default sudo apt-get install qtcreator sudo apt-get install qtdeclarativ…
Qt Python Scriptable Application eryar@163.com Abstract. Python and C++ are in many ways as different as two languages could be: while C++ is usually compiled to machine-code, Python is interpreted. Python's dynamic type system is often cited as the…
目录 autoreconf 命令的作用是什么? aclocal automake -a autoconf 一条命令搞完三面三步 既然有其他的「编译控制软件」为何还是使用 make 来进行编译控制? Module-Init-Tools 软件包的作用是什么? Patch 软件包的作用是什么? Psmisc 软件包的作用是什么? Rsyslog 软件包的作用什么? sysvint 软件包的作用是什么? Udev 软件包的作用是什么? DHCPCD 软件包的作用是什么? Xz-Utils 软件包的作用是…
前言 在linux上开发c/c++代码,基本都会使用make和makefile作为编译工具.我们也可以选择cmake或qmake来代替,不过它们只负责生成makefile,最终用来进行编译的依然是makefile.如果你也是c/c++开发人员,无论你使用什么工具,makefile都是必须掌握的.特别是当你打算编写开源项目的时候,手动编写一个makefile非常重要.本文的目的就是让大家快速了解makefile. 了解makefile makefile的官方文档[1] 学习makefile的最佳方…
前言 编译器的主要工作流程: 源码(Source Code)>> 预处理器(Preprocessor)>> 编译器(Compiler)>> 汇编程序(Assembler)>> 目标代码(Target Code)>> 链接器(Linker)>> 可执行程序(Executables) GCC,全称 GNU Compiler Collection,是 GNU 编译器套装,最开始编译 C 语言,后来可以处理 C++ 以及 Fortran, J…
Qt 是 C++ 的库,Qt 在 ansi C++ 的基础上进行了一点扩展. 但国内似乎比较浮躁,学Qt的很多连基本的C++如何编译似乎都不太清楚.本文舍弃IDE或qmake.cmake等工具的束缚,尝试通过几个例子,一步一步从标准 C++ 的编译过渡到 Qt 的编译. 本文涉及的都是最基本的东西,或许可以说,只要你用C++ Qt,不管是通过哪种工具(qmake.cmake.boost.build.qtcreator.vs2008.Eclipse....),本文的内容都是需要理解的(尽管真正写程…
<CMake实践>笔记一:PROJECT/MESSAGE/ADD_EXECUTABLE <CMake实践>笔记二:INSTALL/CMAKE_INSTALL_PREFIX <CMake实践>笔记三:构建静态库与动态库 及 如何使用外部共享库和头文件 前言: 开发了5,6年的时间,如果没有KDE4,也许不会有人或者Linux发行版本重视cmake,因为除了Kitware似乎没有人使用它.通过KDE4的选型和开发,cmake逐渐进入了人们的视线,在实际的使用过程中,cmak…
在开始介绍如何使用CMake编译跨平台的静态库之前,先讲讲我在没有使用CMake之前所趟过的坑.因为很多开源的程序,比如png,都是自带编译脚本的.我们可以使用下列脚本来进行编译: ./configure --prefix=/xxx/xx --enable-static=YES make make install 相信手动在类Unix系统上面编译过开源程序的同学对上面的命令肯定非常熟悉.更悲惨的是,有些开源库是不提供configure配置文件的,只有一个Makefile或者Makefile.gc…
使用cef3替代chromium内核开发产品过程中,第一次接触到系统构建,使用了最常见的CMake.CMake虽然在构建系统中用的比较多,但是使用到的程序员还是很少的.现在在国内能找到的相关资料和博客比较多,本人在学习中也看了很多人的博客,比如 CMake学习(一)  , CMake语法之流程控制 等.再次感谢这些作者的分享.下边提供一些系统学习的资料. CMake的官网地址:http://www.cmake.org/ CMake主要的文档<learning_cmake> <CMake…
尽管每次和cmake对比起来,我们总是说 qmake 简单.功能少.但是qmake仍然是一个非常复杂的东西,我想大多人应该和我一样吧: 不是太清楚CONFIG等变量到底如何起作用的 用过的qmake内置变量和函数不超过20个 看Qt Creator源码或者QtSolution等库中自己使用的 *.pro 文件就想看天书一样 本文只能抓住一条线,简单介绍一下 *.pro.*.pri.*.prf.*.prl等四种文件:干嘛用的,如何用的 *.pro qmake 的工程(project)文件,这个大家…
浅谈qmake之pro.pri.prf.prl文件 转载自:http://blog.csdn.net/dbzhang800/article/details/6348432 尽管每次和cmake对比起来,我们总是说 qmake 简单.功能少.但是qmake仍然是一个非常复杂的东西,我想大多人应该和我一样吧: 不是太清楚CONFIG等变量到底如何起作用的 用过的qmake内置变量和函数不超过20个 看Qt Creator源码或者QtSolution等库中自己使用的 *.pro 文件就想看天书一样 本…
如今CMake使用的人数越来越多,包括我项目组里,很多大牛们在写Qt程序的时候都不用自带的qmake,貌似会出现很多问题,他们往往都用自己写的CMake来编译系统,今天我也和大家一起来学学这个高大上的工具--CMake. 首先,一个CMake要想运行,必须在同目录下有CMake脚本,说说是脚本,其实并没什么可怕,说白了就是一串CMake作者自己写的token语法分析文件--CMakeLists.txt. 这个文件比如你的项目有很多文件夹,必须在每个源代码文件夹下都有一个CMakeLists.tx…
很多时候,我们在开发的时候是面对嵌入式平台,因此由于资源的限制需要用到相关的交叉编译.即在你host宿主机上要生成target目标机的程序.里面牵扯到相关头文件的切换和编译器的选择以及环境变量的改变等,我今天仅仅简单介绍下相关CMake在面对交叉编译的时候,需要做的一些准备工作. CMake给交叉编译预留了一个很好的变量即CMAKE_TOOLCHAIN_FILE,它定义了一个文件的路径,这个文件即toolChain,里面set了一系列你需要改变的变量和属性,包括C_COMPILER,CXX_CO…
最近研究CMake,发现CMake对于RPATH的管理也非常人性化.官方说法是当动态库的编译也和执行档在同级目录下的时候,CMake会自动给执行档加入适当的RPATH.具体可以通过readelf -d executable来查看相关的RPATH路径.所以有的时候用QMake编译之后还得手动加一把LD_LIBRARY_PATH,而用CMake编译之后,直接执行执行档就可以了. 相关RPATH的说明,同学可以自行google学习,简单来说,RPATH就是在LD_LIBRARY_PATH之前,会优先让…
最近开始学习CMake,因为项目需求需要用到Qt,自带的qmake会出现许多问题(比如文件修改之后有时候qmake不会侦测到不会重新编译,需要手动去编译等),于是开始尝试使用CMake来编写Qt程序,顺便学习一下怎么用CMake来使用find_package,也算给自己一次学习的机会. 切入正题,CMake对于一些有名的库都有自带文件夹中Modules里.cmake文件查询的支持,比如你需要编写Qt程序,你就可以去cmake_dir/Moudles/查找 FindQt4.cmake这个文件,里面…
文章来源:http://blog.csdn.net/dbzhang800/article/details/6317006 本文是qmake的一个使用练习,是半年前所学的 分析与学习Qt Solution对qmake的使用 的续篇. 采用一个非常简单的Qt程序作为例子,通过pro文件的合理编写,使得我们的程序在使用动态库的时候,几乎可以忽略掉动态库的存在.它包括3部分: 生成动态库 使用动态库 生成与使用的自动化 测试环境: ubuntu 11.04 + Qt 4.7.2 windows vist…
shadow build shadow build 是什么东西?就是将源码路径和构建路径分开(也就是生成的makefile文件和其他产物都不放到源码路径),以此来保证源码路径的清洁. 这不是qmake独创的东西,cmake中早就使用这个东西了   cmake qmake 备注 in-source cmake . qmake project.pro 在源码路径下执行 out-of-source(shadow-build) mkdir build cd buildcmake ../project m…