导航:首页 > 源码编译 > gun编译命令

gun编译命令

发布时间:2025-06-01 03:06:05

① 第1篇(共2篇):cmake详细使用教程

原地址链接: cmake使用详细教程(日常使用这一篇就足够了)_李吱恩的博客-CSDN博客

原地址是一篇特别好的文章,此处只是转载,供大家学习,本人没有版权,如涉及版权会立刻删除

一、cmake安装

1、在官网下载cmake的安装包,这里我下载的是v3.26

github.com/Kitware/CMak...

2、找到下载的sh文件,并使用bash来执行sh脚本

bash cmake-3.26.0-rc4-linux-x86_64.sh

3、然后把cmake/bin/cmake软链接到/bin目录下

ln -s /root/download/cmake-3.26.0-rc4-linux-x86_64/bin/cmake /bin/cmake

4、此时已经安装完成,可以在shell中使用cmake命令

二、使用cmake来配合程序的编译

1、只有一个源文件的程序编译

首先在当前目录下创建两个文件

hello.cpp

CMakeLists.txt (注意CMakeLists大小写,不要写错了)

第一行意思是cmake最低版本要求2.8,

第二行是本项目的工程名

第三行:第一个变量:要生成的可执行文件名为hello,后面的参数是需要的依赖。

接着在当前目录下执行 cmake .

接着会发现目录下多生成了一些文件,例如Makefile

然后使用GUN make来编译程序

此时会发现已生成可执行程序,并可以正常执行

2、同一目录下多个源文件

此时在当前目录新增两个依赖,并mian函数的执行需要依赖这两个文件

add.cpp

add.h

只需要CMakeLists.txt中添加所依赖的.cpp文件,编译步骤和上面相同

三、同一目录下很多源文件

如果同一目录下有无穷多源文件,那么一个一个添加就很慢了。此时可以使用cmake中的函数存储这些源文件

aux_source_directory(dir var)

他的作用是把dir目录中的所有源文件都储存在var变量中

然后需要用到源文件的地方用 变量var来取代

此时 CMakeLists.txt 可以这样优化

注意:变量的使用和Makefile不同,CMake是利用大括号,如 ${index}

四、头文件在别的文件夹

对于集中的头文件,CMake提供了一个很方便的函数

include_directories ( dir )

他的作用是 自动去dir目录下寻找头文件,相当于 gcc中的 gcc -I dir

此时 CMakeLists.txt 可以这样优化

五、头文件源文件分离,并含有多个文件夹

假如说当前的工程目录是这样的,头文件和源文件分离,并含有多个文件夹

根据上面的《三》和《四》。此时 CMakeLists.txt 可以这样优化

六、生成动态库和静态库

假如说当前的项目目录是这样的

inc目录下存放头文件

src目录下存放源文件

lib目录下存放生成的库

build目录下存放构建项目相关的文件,如CMakeLists.txt。而稍后我们也在这个目录下执行cmake和make

此时 CMakeLists.txt 可以这样优化

解释一下:

PROJECT_BINARY_DIR是cmake系统变量,意思是执行cmake命令的目录,我们计划在build目录下执行cmake命令,所以这个变量也就等同于build目录

set_target_properties重新定义了库的输出名称,如果不使用set_target_properties也可以,那么库的名称就是add_library里定义的名称。具体可以参考官方文档。

LIBRARY_OUTPUT_PATH 是cmake系统变量,项目生成的库文件都放在这个目录下。这里我指定库生成到lib目录。

开始编译:

在build目录下执行 cmake .

在build目录下执行 make

查看lib目录下是否生成库文件,

出现库文件就算编译成功

七、链接库文件

我们已经在lib目录下生成了库文件,下面我们写一个main函数来使用库文件

目录结构如下:

lib目录下存放静态库和动态库

main_src目录下存放main函数相关的源文件

bin目录存放项目生成的可执行文件

此时 CMakeLists.txt 可以这样写

解释一下:

EXECUTABLE_OUTPUT_PATH是cmake系统变量,意思是生成的可执行文件的的目录,我这里把他改为bin目录,因此生成的可执行性文件会出现在bin目录中。

八、CMake其他功能

一、添加编译选项

有时编译程序时想添加一些编译选项,如-Wall,-std=c++11等,可以使用add_compile_options来进行操作,例如:

原文件是一篇特别容易懂且全面的文档

原文链接: cmake使用详细教程(日常使用这一篇就足够了)_李吱恩的博客-CSDN博客

② CC和gcc是一样的编译器吗

cc是Unix系统的C Compiler,而gcc则是GNU Compiler Collection,GNU编译器套装。gcc原名为Gun C语言编译器,因为它原本只能处理C语言,但gcc很快地扩展,包含很多编译器(C、C++、Objective-C、Ada、Fortran、Java)。因此,它们是不一样的,一个是古老的C编译器,一个是GNU编译器集合,gcc里面的C编译器比cc强大多了,因此没必要用cc。
下载不到cc的原因在于:cc来自于昂贵的Unix系统,cc是商业软件。
Linux下的cc是gcc符号连接,可以通过$ls –l /usr/bin/cc来简单察看,该变量是make程序的内建变量,默认指向gcc。cc符号链接和变量存在的意义在于源码的移植性,可以方便的用gcc来编译老的用cc编译的Unix软件,甚至连makefile都不用改在,而且也便于Linux程序在Unix下编译。

③ linux查看centos版本命令

你好,查看CentOS版本信息的命令有以下几种:

  1. cat /etc/issue 查看版本

    [root@Nginx ~]# cat /etc/issue
    CentOS release 6.5 (Final)
    Kernel on an m

    CentOS release 6.5 (Final)
    CentOS 发行版6.5

  2. cat /etc/redhat-release

    [root@Nginx ~]# cat /etc/redhat-release
    CentOS release 6.5 (Final)

  3. cat /proc/version

    [root@Nginx ~]# cat /proc/version
    Linux version 2.6.32-431.el6.x86_64 ([email protected]) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) ) #1 SMP Fri Nov 22 03:15:09 UTC 2013

    我们可以看到该系统使用的是Linux 2.6.32 内核的64为操作系统。GCC 为GUN 编译器集合,采用4.4.7版本。

  4. uname -a

    [root@Nginx ~]# uname -a
    Linux Nginx 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

    Linux 主机Nginx
    Linux 版本2.6.32-431.el6.x86_64 64位

  5. uname -r

    [root@Nginx ~]# uname -r
    2.6.32-431.el6.x86_64

    分析结果:Linux 版本2.6.32-431.el6.x86_64 64位

希望可以帮到你,谢谢

④ makefile 中的,像gun中的 awk,grep都什么意思,谁有文档说明,给你,谢谢!

你这个makefile 文件因该是在linux下使用的编译文件。awk,grep都是linux的过滤命令。
grep主要是命令的简单过滤。
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。
从这里可以看出,awk和grep都是文本处理,但awk更加强大。

阅读全文

与gun编译命令相关的资料

热点内容
java1000以内完数 浏览:783
debayer算法 浏览:426
数控师傅是要自己编程吗 浏览:785
数字货币用哪个编程语言 浏览:769
国家电网充电桩app哪个便宜 浏览:352
手机视频高清压缩软件 浏览:774
程序员有多少年薪百万 浏览:258
手机传图文件夹 浏览:873
单片机控制激光 浏览:68
桦甸冷库压缩机 浏览:239
点对齐命令 浏览:639
天正建筑未知命令 浏览:745
微信简单订货系统源码 浏览:923
加密的压缩包解压方式选哪一个 浏览:161
程序员那么可爱剧情介绍搜索 浏览:214
程序员编程猫 浏览:746
服务器核心安装和gui的服务器有什么区别 浏览:587
86服务器怎么样 浏览:721
华为手机进入淘宝怎么加密码 浏览:109
美团app在哪里打开 浏览:797