首页
学习
活动
专区
圈层
工具
发布

【CMake】CMake 引入 ( Android NDK 构建脚本 | CMake 命令手册 )

文章目录 一、Android NDK 构建脚本 二、CMake 构建脚本示例 三、CMake 命令手册 1、CMake 脚本命令 2、CMake 工程命令 该系列博客的应用场景是 Android Studio...最低版本 cmake_minimum_required(VERSION 3.4.1) # 设置函数库编译 add_library( # 参数 1 : 设置生成的动态库名称 native-lib...# 参数 2 : 设置生成的函数库类型 : ① 静态库 STATIC ② 动态库 SHARED SHARED # 参数 3 : 配置要编译的源文件...| 引入静态库 | 指定静态库路径 | 链接动态库 ) 复制来的 ; 三、CMake 命令手册 ---- CMake 命令分为三种 , 脚本命令 , 工程命令 , CTest 命令 ; 1、CMake...工程命令 ---- CMake 中有 46 个工程命令 , 一般在 CMake 工程中才可以使用上述工程命令 ; 46 个工程命令如下 , 详细的命令细节参考 cmake-commands(7)

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

    【CMake】Android Studio 中使用 CMake 编译单个 C++ 源文件 ( 常用的 CMake 命令解析 )

    ; CMakeList.txt 中使用到的命令一共只有 93 个, 47 个脚本命令 , 46 个工程命令 , 可以到 CMake 官方查询这些命令的用法 , 在稍后的博客中也会逐一讲解...命令设置最小 CMake 版本 ---- 指定 CMake 最低版本 : 使用 cmake_minimum_required 命令 , 指定编译 C/C++ 源码的 CMake 工具的最低版本 , 这里会自动生成.../command/project.html 四、add_library 命令设置生成函数库 ---- add_library 命令用于设置生成函数库 , 这个函数库包括 so 动态库 和 a 静态库 ;...add_library 命令三个参数说明 : 参数 1 : 设置生成的动态库名称. 参数 2 : 设置生成的函数库类型 : ① 静态库 STATIC ② 动态库 SHARED....链接函数库命令参数说明 : 参数 1 : 本构建脚本要生成的动态库目 标 参数 2 ~ … : 后面是之前预编译的动态库或静态库 , 或引入的动态库 # 指定 CMake 应该连接到目标函数库的若干函数库

    5.8K00

    Qt CMake GUI项目生成脚本

    自动初始化Linux下Qt通用开发的CMake GUI工程的脚本 这个脚本的来由是在我使用了CMake作为Qt工程的编译工具之后,为了使得即使在没有qtcreator的情况下也能快速地建立CMake...本项目已经发布至我的github 完成的功能 自动构建一个标准的CMake Qt GUI工程 使用了以前的通用懒人CMake模板文件 可以自定义工程名称 从github克隆至本地即可重复使用 脚本...脚本原理 脚本同级目录下有一个标准的项目工作目录,此目录是为了提供一个标准的工程项目模板而存在的,结构如上述脚本构建的标准项目目录。...而脚本的工作原理就是通过读入你设置的工程名和可执行文件名之后复制一份标准工程目录然后通过字符串定位修改相应值从而产生一个新的通用编辑器的工程了。...将当前新生成的项目目录拷贝至你的工作目录下进行编程即可 ? ----

    1.2K10

    OpenBLAS:改进OpenBLASConfig.cmake生成方式,解除cmake脚本的路径依赖

    上面Windows下生成的OpenBLASConfig.cmake中OpenBLAS_LIBRARIES的值居然是.dll的路径。...而不是动态库导入库(import library)(.dll.a)的路径,也就是说OpenBLAS在生成OpenBLASConfig.cmake没有考虑到linux和windows的区别,只是按linux...如果你是用手工在Visual Studio中创建工程并设置工程参数,那么这都不是问题,对你没有任何影响,但如果你像我一样,用cmake进行工程编译,这是个很要命的问题,因为cmake根据这些错误的信息无法生成正确的...而在这其中生成OpenBLASConfig.cmake的代码就是如下几行(line 97-116 OpenBLAS 0.2.18) (中文注释为本文作者所加) #Generating OpenBLASConfig.cmake...解决方法 原因搞清楚就好办了,要解决问题,只要修改上面这段代码,改进生成OpenBLASConfig.cmake的逻辑就可以了。

    3.7K70

    cmake:让mingw(gcc)生成MSVC可用的dll(.lib)

    关于MSVC的DLL和LIB的作用和区别,请参考这篇博文,讲得很透彻了–>《DLL和LIB的区别》 那么如果MSVC要链接gcc生成的DLL,却没有lib文件(import library)怎么办?...如果项目中不同的模块用不同的编译器编译,这时如果gcc编译的DLL没有import library(lib文件),可以通过cmake设置选项让gcc在编译的的时候生成import library(lib...(这个变量用来初始化GNUtoMS属性) 所以,在用cmake生成Makefile时,设置GNUtoMS就可以解决这个问题。...有两种途径: shell命令行方式 如下在命令行中-D参数定义一个为BOOL类型的CMAKE_GNUtoMS参数为ON,就指示在编译时对dll生成import library(.lib) cmake...CMAKE_GNUtoMS选项勾选,再点按钮生成Makefile 然后执行make编译项目的过程中,生成dll时会输出下面的信息(前提是你安装了VC编译器)表明它在调用VC的lib

    5.3K20

    利用 cmake 工具生成 Visual Studio 工程文件

    凡是可以使用 CMake 工具编译的 Linux 程序(即提供了 CMakeLists.txt 文件),我们同样也可以利用 CMake 工具生成 Windows 上的 Visual Studio 工程文件...启动 Windows 上的 CMake 图形化工具(cmake-gui),按下图进行设置: ?...如果您的机器上安装了多个版本的Visual Studio,接下来会弹窗对话框让我们选择要生成的工程文件对应的 Visual Studio 版本号。读者可以根据自己的实际情况按需选择。...接下来点击 Generate 按钮即可生成所选版本的 Visual Studio 工程文件,生成的文件位于 vsprojects 目录。 ?...让我们再深入聊一下上述过程:在点击 Configure 按钮之后,和在 Linux 下执行 cmake 命令一样,CMake 工具也是在检测所在的系统环境是否匹配 CMakeLists.txt 中定义的各种环境

    8.8K70

    cmake:shell(bat,sh) 脚本方式生成Makefile

    cmake来生成Makefile文件编译的,为了统一用ant来控制所有代码的生成,就需要c/c++代码也能用ant脚本编译。...总体的过程是这样的: 步骤1.为了让ant能控制c/c++代码的编译,首先就需将cmake生成Makefile的过程脚本化。...步骤2.在ant脚本中调用步骤1中的脚本来实现Makefile生成 步骤3.在ant脚本中调用make实现c/c++代码编译 本文就先讲讲步骤1的做法,步骤2,步骤3参见《ant调用make...BUILD_FOLDER ] then rm -fr $BUILD_FOLDER/* else mkdir $BUILD_FOLDER fi pushd $BUILD_FOLDER cmake...两个版本的编译器共存,所以 这里首先就要检测编译器版本,指定合适的编译器,参见我的另一篇博文《cmake 生成Makefile时指定c/c++编译器》。

    2.6K10

    CMake常用命令的一些整理

    1.18 设置编译选项 设置编译选项可以通过add_compile_options命令,也可以通过set命令修改CMAKE_CXX_FLAGS或CMAKE_C_FLAGS。...命令添加的编译选项是针对所有编译器的(包括c和c++编译器),而set命令设置CMAKE_C_FLAGS或CMAKE_CXX_FLAGS变量则是分别只针对c和c++编译器的。...1.19 预定义变量 1.19.1 基本变量 PROJECT_SOURCE_DIR 我们使用cmake命令后紧跟的目录,一般是工程的根目录; PROJECT_BINARY_DIR 执行cmake命令的目录...如果未进行设置,使用ADD_LIBRARY时又没有指定库类型,默认编译生成的库都是静态库; CMAKE_C_FLAGS 设置C编译选项,也可以通过指令ADD_DEFINITIONS()添加; CMAKE_CXX_FLAGS...Please use a different C++ compiler.") endif() 1.23 CMake生成VS解决方案将项目放置在设定文件夹下 例如,我们在工程中引用了许多的第三方开源库,这些库的源码与自己所写的代码需要进行区分和隔离

    2.4K21

    CMake file命令参数GLOB和GLOB_RECURSE

    GLOB选项将会为所有匹配查询表达式的文件生成一个文件list,并将该list存储进变量variable里。文件名查询表达式与正则表达式类似,只不过更加简单。...GLOB_RECURSE选项将会生成一个类似于通常的GLOB选项的list,只是它会寻访所有那些匹配目录的子路径并同时匹配查询表达式的文件。...(类似于mv命令——译注) REMOVE选项将会删除指定的文件,包括在子路径下的文件。(类似于rm命令——译注) REMOVE_RECURSE选项会删除给定的文件以及目录,包括非空目录。...TO_CMAKE_PATH选项会把path转换为一个以unix的 / 开头的cmake风格的路径。输入可以是一个单一的路径,也可以是一个系统路径,比如"$ENV{PATH}"。...install命令生成的安装脚本使用这个版本(它会使用一些没有在文档中涉及的内部使用的选项。)

    4.7K10

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

    Windows下有命令行版本和gui版本,主要看大家的使用习惯。     设置环境变量的方法,我的电脑->属性->高级系统设置->环境变量,然后将cmake的路径加到path环境变量中。...1、windows使用cmake_gui生成项目 image.png     如上图,在source code处选择CMakeLists.txt文件所在的路径,然后在binaries中选择项目生成的地址...2、windows使用cmake生成项目     先配置好环境变量,然后打开windows命令行工具,进入到项目目录(CMakeLists.txt所在目录),新建一个build文件夹(因为cmake会产生很多自己的中间文件...生成项目工程文件或者makefile之后,就可以使用对应的编译器来编译项目了。 3、linux使用cmake生成项目     在linux下使用cmake生成项目和和上面的第2小节类似。     ...find_package可以根据cmake内置的.cmake的脚本去找相应的库的模块,调用了find_package成功之后,会有相应的变量“生成”有效。

    6.3K20

    cmake 生成Makefile时指定cc++编译器

    https://blog.csdn.net/10km/article/details/50444715 linux下在使用cmake生成Makefile的时候,如果不指定编译器,则默认是使用系统原生的编译器..., 当操作系统中安装了新的版本的编译器,多个版本编译器共存的时候,如果想使用新版本的编译器,在cmake生成Makefile的时候就需要指定编译器。...不论环境变量$PATH怎么设置,cmake在生成Makefile时,如果不指定编译器,生成的Makefile都会调用/usr/bin下的g++/gcc。 所以这种情况下必须指定编译器。...cmake-gui 用cmake-gui配置Makefile的时候如下操作: 这时不能选择默认的第一项(Use default native compilers),而是要选择第二项(Specify...在这里填写指定c/c++编译器的路径 ? shell脚本 那么如果要在脚本中调用cmake生成Makefile时,应该如何写脚本呢? #!

    8.8K10
    领券