首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Linux】Linux编译器-gccg++使用

    文章目录 一、知识铺垫 1.预处理 2.编译 3.汇编 4.链接 二、函数库 1.动态库 2.静态库 三、g++的基本使用 四、总结 一、知识铺垫 重新简单回顾一下编译链接的过程 1.预处理 预处理功能主要包括宏定义...头文件的展开 此时生成test.i,我们用vim进入test.i,在利用底行模式vs test.c: 同时,在预处理阶段完成了宏替换、去注释以及条件编译: 条件编译的生效(宏的命令行定义) 可以向编译器传参来保证宏在命令行中定义...用户可以使用“-S”选项来进行查看,该选项只进行编译而不进行汇编,生成汇编代码 把C转换成汇编 gcc -S test.i -o test.s S:从现在开始,进行程序的翻译,做完编译工作,变成汇编之后...gcc 在编译时默认使用动态库。完成了链接之后,gcc 就可以生成可执行文件。...**这个库的位置: Linux下默认形成可执行程序,默认使用的是动态库 /lib64/libc-2.17.so静态库 生成静态链接 生成可执行程序后面要加上-static 但是我们仔细看一下体积的差距太大了

    2.2K30

    【Linux】Linux调试器--gdb的使用

    gdb是linux上面的调试器,是非图形化界面纯命令行调试的,用起来非常的麻烦! 2. 安装gdb工具的命令 sudo yum install -y gdb 3....默认情况下,gdb无法进行对gcc现在发布的程序进行调试,因为gcc默认生成的软件是realease版本的,没有调试信息,无法被调试器gdb调试,并且gcc是默认动态链接的,如果想静态链接还需要加static...debug是给程序员用的版本,添加了调试信息,用于解决软件或程序中出现的问题,realease是发行给客户使用的版本,并未添加调试信息,只需要给客户提供优越的产品使用环境即可,至于是否能够debug调试...值得注意的是:每一个二进制程序不仅仅只是一堆二进制代码,他们内部都是有特定格式的,Linux中形成的可执行程序是elf格式。...centos test_dir]$ readelf -S mytest_g | grep debug 下面就是debug中所添加的调试信息,而realease版本是没有这些调试信息的 三、gdb的使用

    3.6K30

    【Linux】Linux编译器gccg++的使用

    劣势:形成的可执行程序体积太大,网络、磁盘、内存的资源占用量大, 2.动态链接 通过编译器内部的链接器,来链接标准函数库,值得注意的是,动态链接的时期是在程序运行的时候,如果程序需要链接,链接器就会链接标准函数库...答案是不用的,因为我们系统里边只要有一份库就够使用了,但如果是静态链接的C程序的话,情况就不一样了,一下载就内存占用超大。...系统还给我们提供了动静态标准库.so/.a,这里面有方法的实现,也就是一些已经写好的二进制代码,但我们需要将我们的代码和库代码进行链接,才可以正常使用。...windows下动态库后缀为.dll静态库后缀为.lib 在安装vs2022时,我们安装的不仅仅是编译器本身,还要安装标准库的.h文件,以及标准动静态库等 5.Linux的大部分命令就是用C语言写的...大家需要有这个认识,Linux中大部分指令都是用C语言写的。

    2.2K11

    【Linux】编辑器——vim的使用

    环境:centos7.6,腾讯云服务器 Linux文章都放在了专栏:【 Linux 】欢迎支持订阅 ---- vim的基本概念 vim是什么?...vim是一款多模式的编辑器,是vi的升级版本,在兼容vi指令的同时,还带有一些新的特性在里面。通过本章学习,我们以后便可以在Linux下用vim来进行编写我们的源代码了。...vim的安装与基本使用 在一些云服务器里,大多的vim都是已经安装好后的了,当然,如果自己的Linux中并没有安装vim 编辑器,我们以root身份输入命令:yum install -y vim即可。...vim的基本模式 上面我们介绍了,vim是一款多模式的编辑器,这里我们主要知道以下几个就足以够用了: 命令模式:vim默认打开就是命令模式,该模式是vim的最根本模式,几种模式的切换都是从命令模式进行的

    3.4K41

    Linux编译器-gccg++使用

    用 -D选项可以对编译器传递不同的宏值。在结合条件编译,可以对代码进行动态裁剪。  ...我们对编译器传递了verson2=2,这样的话,条件编译就只编译verson2=2的部分 应用:VS 的免费版和专业版 其实两个版本就是软件,免费版就是一部分的专业版。...此时,只是将自己写的代码变成了二进制文件,包含在头文件里的被我们使用的函数未被编译成二进制,所以还无法执行。 ...但是我们再使用gcc的时候并没有使用选项,来指明库,这是为什么? 这是因为gcc默认连接C语言标准库。我们来查看一下。...4.补充知识:语言与编译器的自举过程 C语言编译器优化成V2----->用C语言编译器v1编译------->v2形成软件(语言的自举)  那么:程序在翻译的过程,是翻译成低级语言,还是直接翻译为二进制文件

    24110

    【Linux】编译器-gccg++使用

    前言 在之前已经分享了 【Linux】vim的使用,这次来看看在云服务器上的编译器gcc。 2....这个是因为编译器版本的问题: 查看编译器的版本:gcc -v 版本不是最新的,不支持在for里面定义变量。...mv test.cxx test.txt 这里是不行的,Linux是不关心文件后缀的,但是编译器是关系。这里编译器就是把.txt当成文本文件了。...在Linux里面有,同样在windows里面也有。 在在Linux中库的真正的名字是把前缀lib去掉,去掉“.”后面的后缀。 所以这个就是c标准库。...查看文件类型: file my.exe 使用的是动态库链接: 动态库和动态链接的优缺点: 不能丢失 节约资源 重新创建一个文件夹,把test.c移动到里面,然后执行。

    19210

    Linux笔记:使用Vim编辑器

    目录[-] Vi编辑器是Unix系统上早先的编辑器,在GNU项目将Vi编辑器移植到开源世界时,他们决定对其作一些改进。...为了方便使用,几乎所有Linux发行版都创建了一个名为vi的别名,指向vim程序。 Vim基础 Vim编辑器在内存缓冲区处理数据。只要键入vim命令和你要编辑的文件的名字,即可启动Vim编辑器。...p命令可以和任何删除文本的命令一起搭配使用。 Vim中复制命令是y(代表yank)。y命令和d命令有相同的第二字符(如yw表示复制单词,y$表示复制到行尾)。在复制文本后,输入p命令表示粘贴。...现在寄存器中已经有了要复制的文本,使用p命令到合适的位置粘贴即可。...替换行号n和m之间的所有old :%s/old/new/g: 替换整个文件中的old :%s/old/new/gc: 替换整个文件中的old,但在每次出现时提示 最后 Vim包含了不少高级功能,由于每个Linux

    1.5K40
    领券