首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用Cmake生成跨平台项目编译解决方案

一、cmake简介     你或许听过好几种 Make 工具,例如 GNU Make ,QT 的 qmake ,微软的 MS nmake,BSD Make(pmake),Makepp,等等。...,因此新建一个文件夹,到时候需要clean的时候,直接删除build即可)。     ...然后执行cmake ../     然后在build目录就会产生vs的项目文件,在windows下默认是产生vs的项目,如果要产生其他编译器的makefile,则需要使用-G指定编译器,如下:     ...生成项目工程文件或者makefile之后,就可以使用对应的编译器来编译项目了。 3、linux使用cmake生成项目     在linux下使用cmake生成项目和和上面的第2小节类似。     ...在CMakeLists.txt所在目录新建build目录,在build目录执行:     cmake ../     就会在build目录生成Makefile文件,然后就可以继续执行make编译项目。

5.5K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    make makefile cmake qmake都是什么,有什么区别?

    5. cmake是抽象层次更高的项目管理工具,cmake命令执行的CMakeLists.txt文件 6. qmake是Qt专用的项目管理工具,对应的工程文件是*.pro,在Linux下面它也会生成Makefile...,当然,在命令行下才会需要手动执行qmake,完全可以在qtcreator这个专用的IDE下面打开*.pro文件,使用qmake命令的繁琐细节不用你管了。...2.当你的程序只有一个源文件时,直接就可以用gcc命令编译它。...3.但是当你的程序包含很多个源文件时,用gcc命令逐个去编译时,你就很容易混乱而且工作量大 4.所以出现了make工具 make工具可以看成是一个智能的批处理工具,它本身并没有编译和链接的功能,而是用类似于批处理的方式...qmake 是为 Qt 量身打造的,使用起来非常方便,但是cmake功能比qmake强大。 一般的Qt工程你就直接使用qmake就可以了,cmake的强大功能一般人是用不到的。

    2.2K10

    该项目的所有配置项都需要系统提供对某些平台的支持,但在此计算机上没有安装这些平台。因此无法加载该项目。

    如果您希望在编辑器中自动打开文件, 也可以使用任何其他文件作为第一个参数。当您输入项目文件时,IDE 会在项目文件的父目录中查找与该项目文件具有相同 基名称的 .sln 文件。.../Clean 删除生成结果。 /Command 启动 IDE 并执行该命令。 /Deploy 生成并部署指定的生成配置。 /Edit 在此应用程序的运行实例中打开 指定文件。...并相应地创建这些文件的备份。有关备份 过程的更多信息,请参见 “Visual Studio 转换向导”上的帮助。 产品特定的开关: /debugexe 打开要调试的指定可执行文件。...如果您希望在编辑器中自动打开文件, 也可以使用任何其他文件作为第一个参数。当您输入项目文件时,IDE 会在项目文件的父目录中查找与该项目文件具有相同 基名称的 .sln 文件。.../Clean 删除生成结果。 /Command 启动 IDE 并执行该命令。 /Deploy 生成并部署指定的生成配置。 /Edit 在此应用程序的运行实例中打开 指定文件。

    26820

    xmake v2.3.7 发布, 新增 tinyc 和 emscripten 工具链支持

    现在,xmake v2.3.7 版本发布了,在新版本中,我们主要完善了 xmake 自身的稳定性和兼容性,通过两个月的不断迭代,修复了很多用户反馈的各种使用问题,使用体验和稳定性有了很大的提升。...而不需要关心 autotools/cmake 需要如何去配置使用和编译,毕竟 cmake 对于 windows 和 linux 平台,需要生成不同的构建文件,编译方式也是不同的,一会调用 make,一会调用...不仅如此,xmake 还对接了 xmake -r 来直接重新编译,对接 xmake clean 实现统一的文件清理,对接 xmake -v 实现统一的详细编译命令的查看。...,哪怕这个项目是使用 cmake 来维护的。...环境的支持 #918: 改进cuda11工具链的支持 改进Qt支持,对通过 ubuntu/apt 安装的Qt sdk也进行了探测支持,并且检测效率也优化了下 改进 CMake 工程文件生成器 #931:

    1.3K10

    Qmake VS Cmake

    用 cmake 构建Qt工程(对比qmake进行学习) cmake vs qmake qmake 是为 Qt 量身打造的,使用起来非常方便 cmake 使用上不如qmake简单直接,但复杂换来的是强大的功能...用 qmake 时: 默认是 windows 子系统 可以通过 CONFIG += console 使用 console 子系统 用 cmake 是: 默认是 console 子系统 使用 windows...只是: MinGW 下仅仅这么做还不行,上面的 MinGW 块用来修复这个问题 Debug 与 Release qmake 使用 qmake 时,可以在 pro 文件内分别为两种模式设置不同的选项...使用时,可以直接 make release 或 make debug 来编译不同的版本 cmake 不同于 qmake,由于 cmake 采用 out-of-source 方式。...故: 建立debug release两目录,分别在其中执行cmake -DCMAKE_BUILD_TYPE=Debug(或Release) 需要编译不同版本时进入不同目录执行make 对生成 msvc

    1.2K10

    g++,CMake和Makefile了解一下

    显示规则: 通常在写makefile时使用的都是显式规则,这需要指明target和prerequisite文件。...步骤如下: 1.编写clean 这一步在Makefile中基本差不多,它的作用就是删除所有的.o文件和可执行文件。为什么这样做呢?...另外请注意Makefile文件在执行时不会执行clean这个命令,需要我们调用才会执行,即make clean。clean代码如下: ?...CMake是一个跨平台的编译(Build)工具,可以用简单的语句来描述所有平台的编译过程,其是在make基础上发展而来的,早期的make需要程序员写Makefile文件,进行编译,而现在CMake能够通过对...对于我们这个实例,编译如下: 首先我们在命令行输入cmake .(注意cmake和.之间有空格),表明Cmakelist.txt文件在当前目录下。 ? 接下来在命令行输入make ?

    1.7K20

    程序员C语言快速上手——工程篇(十三)

    .o文件 clean: rm *.o cd到当前目录,执行输入make命令,即可快速编译生成main.exe程序,当我们需要清理整个工程时,即全部重新编译时,可以输入make clean命令,即可删除当前目录下的所有....o文件和可执行文件 clean: rm *.o main.exe 在make工具中,它能够自动完成对.c文件的编译并生成对应的.o文件。...伪目标伪目标就是一个标签,它本身既不是目标文件也不是可执行文件,例如上面例子中的clean,我们可以通过伪目标定义一些命令,然后在make中去执行。...当我们需要删除临时文件时,只需要删除build目录即可,不会对源码工程造成任何影响。...-G "MinGW Makefiles" ..命令自动生成Makefile文件,然后执行make命令进行编译,完成后build目录下即生成main.exe 当链接已经编译好的库时,推荐使用find_library

    3.1K30

    CMake编写总结

    make和CMake之间的关系是CMake 通过命令可以生成make执行的Makefile文件,所以说CMake 是make 的升级版的生成工具 CMake文档 点击此处到达CMake的在线文档页面。...GLOB_RECURSE,因为他会遍历所有找到的文件夹以及他的子文件夹,容易造成把build目录扫描导致main函数重复定义的情况 完成后用CMake编译生成makefile,即可使用make命令进行项目的编译了...复杂(多文件夹)C++项目写CMakeLists.txt 复杂项目示例 一般有较多文件的项目都是使用多文件夹进行管理项目源文件的,使用多个不同级目录下保存源文件的管理方式使用CMake生成makefile..."*.cpp") file(GLOB_RECURSE HEADERS "*.h") 这样就可以对多个文件夹管理的项目使用CMake生成makefile了 qt项目编写CMake qt项目需要添加相应的库...dependes target_link_libraries(${TARGET_NAME} PRIVATE Qt5::Widgets) 使用 在当前文件夹下使用一下命令可以生成Makefile: cmake

    1.1K10

    Deepin15.11下Qt5.14无法使用中文输入法

    对于使用 fcitx 框架的中文输入法,需要手动编译 fcitx-qt5 生成中文输入法的库文件。 1....安装 cmake,用于编译 fcitx-qt5 首先查看是否已经安装 cmake: cmake --verison 如果有显示版本信息说明已经安装,则可以到下一步;如果没有安装,则先安装: sudo apt...为 Qt 版本号),则说明已经设置过了 qmake 环境变量,可以到下一步;如果没有设置,则手动临时设置 qmake 环境变量(后续命令都需在该终端进行): export PATH="$HOME/Qt...cmake . make sudo make install 最后把编译得到的 libfcitxplatforminputcontextplugin.so(在 Qt 目录中的 x.y/gcc_64/...编译安装 extra-cmake-modules_1.4.0 cd extra-cmake-modules-1.4.0 cmake . make sudo make install 然后回到上一步重新执行

    87431

    Makefile && CMake 简单入门

    CMake 一、简单语法 ​ 引入 cmake 是因为跨平台的原因,因为在不同平台中编写的 makefile 是不同的,所以就要有一个工具也就是 cmake 来解决! ​...它就会执行 cmake 的规则后就会生成 makefile 文件,接着我们执行 make 指令就能创建以下这些文件: ​ 这样子其实直接放在工作目录中是很凌乱的,所以我们不推荐这样子做!...此时就生成 makefile 文件,然后直接 make 后就能得到目标文件了! ​...这样子做的好处就是将这些生成文件放到一个文件夹 build 中统一保管,这样子一来看起来整洁,并且删除起来我们只需要删除整个文件夹即可,非常方便! Ⅲ....而第一个 Makefile 在处理多个源文件时存在问题,只会使用第一个源文件生成所有目标文件,这是不正确的。 ​ 所以,第二个 Makefile 是正确的形式,建议使用该形式来生成目标文件。

    7510

    AI树莓派——构建树莓派大脑(NCNN环境搭建)

    前言 镜像已经做好了,传到百度网盘中了(请大家及时保存,不定期删除!)...密码 111 依赖库编译在Dowloads文件夹下 编译好的NCNN项目在work目录下 板卡介绍 本系列教程采用树莓派3B+开发板: ?...# 添加库路径 在/etc/ld.so.conf.d/目录下创建文件bprotobuf.conf文件 $ cd /etc/ld.so.conf.d/ $ sudo touch bprotobuf.conf...-default -y 安装numpy(命令行),第一次使用pip安装时可能会比较慢,耐心等待 $ sudo pip3 install numpy 查看numpy的安装目录并记录(后面编译时需要PYTHON3...配置 解压后在opencv-3.4.0文件夹里创建build文件夹,然后在命令行里面cd到此文件夹,开始cmake,以下内容为一行 $ cmake -D CMAKE_BUILD_TYPE=RELEASE

    2.2K30

    Linux Qt配置opencv环境(一)

    ,解压,进入opencv-3.4.10文件内: cmake 指令 (注意,之后会用make -j4进行测试) 官方网站:https://opencv.org/releases/ 下载好压缩文件后,...解压,进入opencv-3.4.10文件内: cmake 指令 (注意,之后会用make -j4进行测试) 经过漫长时间编译后,默认参数使得头文件在/usr/local/include下,分别是opencv...和opencv2; 头文件是在/usr/local/lib下的libopencv_* Make的过程还是有些耗时的。...②使用Qt 进行测试 使用之前文章 Qt一些模板 链接共享库的方式进行测试: unix{ contains(QT_ARCH, i386){ } contains...六、 小结 ①关于源码编译部分其实是将源码变成了共享库及头文件 ②Qt 中如何使用共享库及头文件 ③Qt 中编译部分及程序运行时所需共享库的搜索路径

    6.3K50

    buildroot是什么_yocto buildroot

    选择这个的好处就是配置简单,后续build 它里面的文件系统,第三方应用很轻松,不存在兼容性问题.缺点就是费时间,因为你make clean后所有output里的文件都没了,下次编译时又要重新再编译一次...) 2.Dynamic using devtmpfs only(在启动时能动态生成,后面就不行了) 3.Dynamic using devtmpfs + mdev(嵌入式选择这个,当有新设备时能动态生成或删除节点文件...make linux-menuconfig这样就会弹出你上面选中的配置项的配置界面 你所作的修改会保存在$(O)/build/linux-/,它们在clean后不会保留下来 当你指定配置时用的是...,dirclean,reconfigure,rebuild等 使用make help查看更多 2.5.1 如何编译一个单独的包 make package-build 2.5.2 如何删除一个单独的包...make -rebuild:更改代码文件后重新编译使用 2.5.4 如何查询要使用的包 make external-deps:列出所有要用的源码包.当你不知道要下载哪个包时可以查询等

    1.3K20

    Geant4安装教程--最新Ubuntu18.04装配&&最新G4.10.05.p01

    在Geant4调用Qt的过程中,会首先搜索Qt5,在找不到Qt5的情况下搜索Qt4.因此本着强迫症优先的原则,同时作者放弃了 apt-get install qt*的安装方式,因为作者遇到了Qt4和Qt5...sudo dpkg -l|grep qt|more #搜索系统中所有的qt相关的包,会发现若干qt4,qt5. sudo dpkg -r qt* #删除系统所有的qt 包 从官网下载最新版本的Qt5.13.0...这时候就要关注报错信息,是否和/usr/lib/x86_64-linux-gnu/****.so 文件有关。如果有关的话,请使用 sudo ln -s 命令操作[7]。...2.3 Xerces的安装工作 为了保证可以有效使用GDML XLM 文件, 版本号大于3的 Xerces-C++ headers and library 需要进行安装。...使用sudo pgp -ka KEY 和 sudo pgp xerces-c-3.2.2.tar.gz.asc 文件对源文件验证。验证通过后,按照[9]进行安装。

    3.5K20
    领券