cmake编译软件中文版下载 电脑版

cmake编译软件中文版下载 电脑版

系统:PC

日期:2021-02-07

类别:编程开发

版本:v1.0

注:检测到是移动设备,电脑版软件不适合移动端。
  • 详情
  • 相关
  • 评论

cmake中文版介绍

cmake中文版是一款全新的编程软件,一款能够在这里轻松编程,让每一个用户都能在这里简单的编程、或者封装打包你的语言,让你的编译更轻松。cmake编译软件中文版有着简单的软件界面,支持多种语言的设置,用户可以在这里任意选择一个编程语言,让你的编程更容易。

cmake中文版介绍

cmake安装教程

step1:

下载“.zip”文件。

备注:首先,我是下载的“二进制”文件,不是源代码(师兄说源代码还要编译,直接下二进制的吧!)。

其次,我下的是“.zip”文件,不是“.msi”格式。下面主要介绍“.zip”格式的使用方法。

step2:

解压zip文件。

在解压后的文件中找到bin->cmake.exe,它的路径为:“D:\cmake-3.9.0-win64-x64\bin”。这个路径也就是你把解压后的文件放到哪了。即为你的安装路径。

step3:

给cmake.exe添加环境变量。

右键“我的电脑”,选择“属性”,进入高级系统设置。

点击“环境变量”。

在“系统变量”下选择“path”进入“编辑”,添加step2中的路径即可。

备注:添加环境变量可参照OpenCV的配置方法

然后 cmake  --version 看看出现版本号即可。

这个是要在cmd命令窗口中输入查看。

cmake中文版语法

1. 初试 cmake 的 helloworld
现在新建一个 hello.cpp 源码文件,代码如下:

#include <stdio.h>
int main(int argc, char* argv[]){
  printf("Hello CMake!\n");
}
之前都是采用 gcc hello.cpp -o hello 命令来生成可执行文件,但现在我们用 CMake 这种方式来生成,新建一个 CMakeLists.txt 文件名大小写都按照这个来:

# 指定工程名
PROJECT (HELLO)
# 现阶段,你只需要了解 SET 指令可以用来显式的定义变量即可
# 将 hello.cpp 赋值给 SRC_LIST 变量,也可以指定多个源文件,用空格隔开
# SET(SRC_LIST hello.cpp add.cpp sub.cpp)
SET(SRC_LIST hello.cpp)
# 输出打印构建目录
MESSAGE(STATUS "This is HELLO_BINARY_DIR " ${HELLO_BINARY_DIR})
# 输出打印资源目录
MESSAGE(STATUS "This is HELLO_SOURCE_DIR " ${HELLO_SOURCE_DIR})
# 输出打印资源目录,与HELLO_SOURCE_DIR 一样
MESSAGE(STATUS "This is PROJECT_SOURCE_DIR " ${PROJECT_SOURCE_DIR})
# 输出打印 CMake 资源目录,与 PROJECT_SOURCE_DIR 一样
MESSAGE(STATUS "This is CMAKE_SOURCE_DIR " ${CMAKE_SOURCE_DIR})
# 生成可执行文件 hello ,${SRC_LIST}是引用变量,也就是源文件 hello.cpp
ADD_EXECUTABLE(hello ${SRC_LIST})
新建 build 目录,cd 到 build 目录下,敲 cmake .. 命令,ls 一下会发现 CMake 帮我们生成了 Makefile 等等一些文件。敲 make 命令生成 hello 可执行文件,ls 文件列表如下:

ubuntu@VM-0-9-ubuntu:~/NDK_Day88/t1/build$ ls
CMakeCache.txt  CMakeFiles  cmake_install.cmake  hello  Makefile
2. 构建生成 .so 动态库
上面的例子看不出有啥优势,甚至说还不如用 gcc hello.cpp -o hello 来得快,但像 FFmpeg 、OpenCV 等等,类似这样复杂的项目,我们敲命令去构建项目是很麻烦的。下面我们来讲一个稍微复杂一点的例子:

mkdir 新建 3 个目录分别为 src、libs、include 。src 用来存放源文件 add.ccp、sub.cpp、div.cpp。include 用来存放头文件 add.h、div.h、sub.h 。源码如下:

#include "add.h"
int add(int num1, int num2){
        return num1 + num2;
}

#include "sub.h"                        
int sub(int num1, int num2){        
        return num1 - num2;        
}

#include "div.h"                                             
int div(int num1, int num2){                   
        return num1 / num2;                 
}
基于这些准备工作,我们想用 CMake 来构建一个 libmath.so 动态库,并且将其生成在 libs 目录文件夹下。

# 指定 cmake 最低编译版本
CMAKE_MINIMUM_REQUIRED(VERSION 3.14)
PROJECT (MATH)
# 把当前工程目录下的 src 目录的下的所有 .cpp 和 .c 文件赋值给 SRC_LIST
# AUX_SOURCE_DIRECTORY(${PROJECT_SOURCE_DIR}/src SRC_LIST)
FILE(GLOB SRC_LIST "${PROJECT_SOURCE_DIR}/src/*.cpp")
# 打印 SRC_LIST 文件列表
# MESSAGE(STATUS ${SRC_LIST})
# 指定头文件目录
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/include)
# 指定输出 .so 动态库的目录位置
SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
# 指定生成动态库
ADD_LIBRARY(math SHARED ${SRC_LIST})
# 指定生成版本号,VERSION指代动态库版本,SOVERSION指代API版本
# SET_TARGET_PROPERTIES(math PROPERTIES VERSION 1.2 SOVERSION 1)
3. 链接外部动态库和头文件
将 libs 目录和 include 目录 copy 到 hello.cpp 同级目录下,修改 hello.cpp 源码如下:

#include <stdio.h>
#include "add.h"
#include "sub.h"
#include "div.h"

int main(int argc, char* argv[]){
        int a = 20;
        int b = 10;
        printf("%d+%d=%d\n",a,b,add(a,b));
        printf("%d-%d=%d\n",a,b,sub(a,b));
        printf("%d/%d=%d\n",a,b,div(a,b));
        return 0;
}
现在我引用了 include 目录下的头文件,同时需要链接 libs 目录下的 libmath.so ,我们再次创建一个 CMakeLists.txt 来生成可执行文件 hello。

# 指定cmake最低编译版本
CMAKE_MINIMUM_REQUIRED(VERSION 3.14)
# 指定工程的名称
PROJECT(HELLO)
#指定头文件目录位置
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/include)
#添加共享库搜索路径
LINK_DIRECTORIES(${PROJECT_SOURCE_DIR}/lib)
#生成可执行文件
ADD_EXECUTABLE(hello hello.cpp)
#为hello添加共享库链接
TARGET_LINK_LIBRARIES(hello math)
4. 基于 FFmpeg 开发的 CMakeLists.txt
音视频的播放,在线直播,音视频通话开发,后面可能都得基于 FFmpeg 来写。那么首先我们需要编译 .so 动态库,然后把动态库和头文件 copy 到 AS 来开发,这里我已经编译好了一个 3.3.9 的版本,至于怎么写 shell 编译脚本,会在下篇文章中介绍。目前大伙先直接拿过来用就行了。我把编译好的 .so 动态库和 include 目录拷贝到 AS 工程的 jniLibs 目录下

评分及评论

4.5 满分5.0分

点击星星用来评分

评论需审核后才能显示
  • 辽宁鞍山移动2023-9-26
    这个软件真的比较不错了。
  • 四川广元联通2023-11-4
    真的很好用啊,没想到发现了这么多优秀的软件
  • 湖南长沙移动2023-3-9
    不打广告。。真心觉得挺好
  • 河南三门峡电信2023-10-23
    越更新越好用了,之前有些功能我都找不到,太令我惊喜了
  • 山东泰安电信2023-5-26
    超级棒!点一亿个赞
热门排行