gcc编译器 1、gcc工作流程 2、gcc常用参数 参数 用途 -v 查看版本 -o 产生目标文件 -I+目录 指定头文件目录 -D 编译时定义宏 -00/-01/-03 没有优化/缺省值.../lib 将静态库文件放置lib文件夹下 nm libMyTest.a 查看库中包含的函数等信息 第三步:使用静态库 第一种方法: gcc + 源文件 +.../app 第二种方法: gcc + 源文件 + -I头文件 + libxxx.a + -o 可执行文件名 gcc main.c -I include lib/libMyTest.a -o app 动态库.../lib 第三步:使用动态库 第一种方法: gcc + 源文件 + -L 动态库路径 + -l动态库名 + -I头文件目录 + -o 可执行文件名 gcc main.c -L lib -l MyTest.../app (执行失败,找不到链接库,没有给动态链接器(ld-linux.so.2)指定好动态库 libmytest.so 的路径) 第二种方法: gcc + 源文件 + -I头文件 + libxxx.so
gcc常用编译选项: 选项 含义 -static 链接静态库,禁止使用动态库 -shared 进行动态库编译,链接动态库 -Ldir 在动态库的搜索路径中增加dir目录 -lname 链接静态库(libname.a...)或动态库(libname.so)的库文件 -fPIC(或fpic) 生成使用相对地址无关的目标代码 方法一: 第一步:使用-shared参数生成动态库,gcc -shared -fPIC -o libtest.so...test.c 然后把libtest.so复制到/usr/lib64/系统路径下 注意:生成的动态库的名字必须是lib+名字.so,之后可以直接使用-ltest来引用动态库。...第二步:编译main.c,使用libtest.so动态库,gcc -o main main.c -L/usr/lib64/ -ltest 方法二: 在编译main.c,并链接libtest.so的时候,...直接指定使用当前目录下的libtest.so文件, 使用命令:gcc -o main main.c .
编译安装 安装依赖包 yum install wget make gmp-devel mpfr-devel libmpc-devel bzip2 zlib-devel 下载、安装GCC wget https...://ftp.gnu.org/gnu/gcc/gcc-8.3.0/gcc-8.3.0.tar.gz tar xf gcc-8.3.0.tar.gz cd gcc-8.3.0 ....disable-libgcj --enable-gnu-indirect-function --with-tune=generic --disable-multilib make -j 8 make install 查看gcc...版本 gcc -v 参考:https://www.cnblogs.com/music-liang/p/12900457.html
#解决搭建LAMP环境遇到编译错误 #请将Linux系统盘放入光驱 #以下为Shell脚本 #此脚本功能为安装gcc等解释器 mkdir-p/root/iso mount/dev/cdrom/root/...iso cd/root/iso/Server #C rpm-ivhcompat-gcc-34-c -3。...rpm–force–nodeps #gcc rpm-ivhcompat-gcc-34-3。4。6-4。i386。...rpm–force–nodeps rpm-ivhcompat-gcc-34-g77-3。 4。6-4。i386。rpm–force–nodeps rpm-ivhcompat-libgcc-296-2。
动态库一般后缀名为“.so”,如前面所述的 libc.so.6 就是动态库。gcc 在编译时默认使用动态库。完成了链接之后,gcc 就可以生成可执行文件,如下所示。...相反,库留在独立的文件中(动态库),在程序启动或运行时由动态链接器(如Linux上的 ld.so)加载。...glibc 是大多数 Linux 发行版使用的 libc 实现。 向后兼容性:新版本的 glibc 设计时通常会考虑到向后兼容性,使得旧的应用程序仍然可以在新版本的库上运行。...libc-2.17.so 是系统中的标准 C 库实现的一个版本,它是许多 Linux 程序运行不可或缺的组成部分。...默认情况,Linux上,一般静态库都是默认没有安装的 sudo yum install -y glibc-static libstdc++-static 04.makefile make是一个命令 makefile
【它依赖于Binutils,可以参考安装GCC】 3. Glibc:包含了主要的c库,这个库提供了基本的例程,用于分配内存,搜索目录,读写文件,字符串处理等等。...【这个包GCC编译生成的库,前辈们为了方便大家开发,就把Glibc放到GCC中】 举例描述下上面3个包是如何进行运作的。...、arm-linux-gcc: arm-linux-gcc是基于ARM目标机的交叉编译软件,前面几年安装arm-linux-gcc交叉编译软件对与一个初级嵌入式工程师来说特别棘手,因为它需要安装多个软件包...六、arm-linux-gcc和arm-elf-gcc: arm-elf-gcc跟arm-linux-gcc一样,也是是基于ARM目标机的交叉编译软件。...arm-linux-gcc使用GNU的Glibc,而arm-elf-gcc一般使用 uClibc/uC-libc或者使用REDHAT专门为嵌入式系统的开发的C库newlib。
gcc是GNU编译器套件(GNU Compiler Collection),它包括了C、C++、Objective-C、Fortran、Java、Ada、Go语言和D语言的前端,也包括了这些语言的库(如...component in the library path -print-multi-directory 显示不同版本 libgcc 的根目录 -print-multi-lib 显示命令行选项和多个版本库搜索路径间的映射...-print-multi-os-directory 显示操作系统库的相对路径 -print-sysroot 显示目标库目录 -print-sysroot-headers-suffix 显示用于寻找头文件的...前缀 -pipe 使用管道代替临时文件 -time 为每个子进程计时 -specs= 用 的内容覆盖内建的 specs 文件 -std= 指定输入源文件遵循的标准 –sysroot= 将 作为头文件和库文件的根目录...bak]$ gcc test.o testfun.o -o test [deng@localhost bak]$ 到此这篇关于Linux gcc命令的具体使用的文章就介绍到这了,更多相关Linux gcc
这篇文章主要通过实例演示在Linux下如何使用gcc分别编译生成静态库和动态库文件以及其它程序如何使用这个生成的静态库和动态库。...-64.so.2 (0x00007f641cf53000) 3.1小节中的方法需要root用户权限,对于非root用户有方法二来解决:如前文《Linux gcc链接动态库出错:LIBRARY_PATH...) [root@typecodes ~]# 解决方法三:gcc链接动态库生成可执行文件时,加入rpath参数。...Linux系统动态库搜索目录下。...-rpath=库文件所在路径 ; 4、最简单的方式:把库文件拷贝到Linux系统库文件所在目录下(/lib、/lib64、/usr/lib、/usr/lib64、/usr/local/lib等)。
gcc 编译器是 Linux 下默认的 C/C++ 编译器,大部分 Linux 发行版中都是默认安装的。gcc 编译器通常以 Linux 命令的形式在终端(Shell/Bash)中使用。...value = sin(3.14/2);// 即pai/2 = 90° } 函数中用到了sin三角函数,包含了math.h数学库,因而在编译阶段需要连接对应的数学库。...gcc sintest.c -lm -L/lib -L/usr/lib 其中,-lm可理解为两部分,-l是加入某个函数库,m则是libm.so的代称。...后面的-L参数用于指定库的搜索路径,由于Linux的默认库的位置就是在lib文件目录下,因此可以省略不写,如果是其它的第三方库,则需要指明库文件的位置。...参考:《鸟哥的Linux私房菜 (基础学习篇 第三版)》
gcc -v 打印出你使用gcc的版本信息 gcc -o test test.c就会编译test.c,生成可执行文件 test然后.
查看Linux版本 cat/etc/issue Linaro 12.07 \n \l 2....查看内核版本 1)cat/proc/version Linux version 2.6.38-13-generic(buildd@rothera) (gcc version 4.5.2 (Ubuntu/...Linaro 4.5.2-8ubuntu4)) #57-Ubuntu SMP Mon Mar 5 18:10:14 UTC 2012 Linux version 3.4.29+ (ubuntu@linux-server.../Linux Linux ubuntu 3.4.29+ #7 PREEMPT Mon Aug 5 13:37:28 CST 2013 armv7l armv7l armv7l GNU/Linux [——...查看gcc版本 gcc–version gcc (Ubuntu/Linaro 4.5.2-8ubuntu4)4.5.2 gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
下面由学习啦小编为大家整理了linux下安装gcc命令的方法,希望大家喜欢! linux下安装gcc命令 1 下载 在GCC网站上或者通过网上搜索可以查找到下载资源。...其它设置 GCC 4.1.2的所有文件,包括命令文件(如gcc、g++)、库文件等都在${destdir}目录下分别存放,如命令文件放在bin目录下、库文件在 lib下、头文件在include下等。...1) 7.2 库路径的设置 将${destdir}/lib路径添加到环境变量LD_LIBRARY_PATH中,例如,如果GCC 4.1.2安装在/usr/local/gcc-4.1.2目录下,在RH Linux...完成了Linux安装GCC,之后你就能轻松地编辑了。.../local/gcc-4.0.1 [root@linux gcc-4.0.1]# make (在目标目录下执行编译) 6、安装gcc: [root@linux gcc-4.0.1]# pwd /usr/
linux安装gcc命令步骤(centos安装gcc命令) >一、前言 本文介绍在CentOS7.8系统下使用YUM升级GCC版本的相关操作步骤。...官网:https://gcc.gnu.org/ 源码包下载: http://ftp.gnu.org/gnu/gcc 特别说明: 目前第三方库SCL还没有gcc 11.x以上版本的YUM源,若要升级为11...第三方库SCL的devtoolset-6版本已经结束支持,只能通过源码编译安装升级gcc 6.x。...第三方库SCL的devtoolset-4及devtoolset-3版本(即gcc 5.x 和 4.9.2版本)已经结束支持,只能通过其他方法安装升级gcc 5.x 和 4.9.2。...若是在RHEL系统上升级GCC,安装第三方库SCL后需为系统启用RHSCL存储库,使用命令: yum-config-manager --enable rhel-server-rhscl-7-rpms 二
-llib 连接lib库 -g 在目标文件中嵌入调试信息,以便gdb之类的调试程序调试 现在我们有源文件hello.c,下面是一些gcc的使用示例: gcc -E hello.c -o hello.i...然后就可以这样来使用静态库libhello.a gcc -Wall main.c libhello.a -o main 还有另外一种使用方式: gcc -Wall -L. main.c -o main...将刚才hello.o生成libhello.so的命令为: gcc -shared -fPIC hello.o -o libhello.so 生成了共享库之后,可以这样来使用共享库: gcc -Wall...共享库有时候并不不在当前的目录下,为了让gcc能够找得到共享库,有下面几种方法: 拷贝.so文件到系统共享库路径下,一般指/usr/lib 在~/.bash_profile文件中,配置LD_LIBRARY_PATH...库的搜索路径 库的搜索路径遵循几个搜索原则:从左到右搜索-I -l指定的目录,如果在这些目录中找不到,那么gcc会从由环境 变量指定的目录进行查找。
详情及变更请参照: Linux 编译安装 GCC 4.9 GCC4.9发布啦,本脚本在之前4.8的基础上做了稍许改进,更新 PS:4.9.0 开始支持C++1y特性 GCC 4.9 的大致变更如下,...4.9.X 准备环境及依赖项 支持 ISO C++ 98 的编译器(GCC 4.7.2 的中期一个patch导致的整个项目开始转为由C++编译) C标准库及头文件 用于创建Ada编译器的GNAT...版本4.3.2及以上 (可由GNU镜像列表 http://www.gnu.org/prep/ftp.html 或自动选择最佳镜像 http://ftpmirror.gnu.org 下载 ) mpfr库...版本2.4.2及以上 (可由GNU镜像列表 http://www.gnu.org/prep/ftp.html 或自动选择最佳镜像 http://ftpmirror.gnu.org 下载 ) mpc库...3.81 tar 1.23 perl 5.10.1 bzip2 1.0.5 gcc 4.4.7 or gcc 4.4.5 or gcc 4.8.2 编译的依赖库: gmp 6.0.0a
Linux编译安装GCC 4.7 详见: Linux编译安装GCC 4.7 准备环境及依赖项 支持 ISO C90 的编译器 用于创建Ada编译器的GNAT 支持POSIX的shell或GNU bash...版本4.3.2及以上 (可由GNU镜像列表 http://www.gnu.org/prep/ftp.html 或自动选择最佳镜像 http://ftpmirror.gnu.org 下载 ) mpfr库...版本2.4.2及以上 (可由GNU镜像列表 http://www.gnu.org/prep/ftp.html 或自动选择最佳镜像 http://ftpmirror.gnu.org 下载 ) mpc库...版本0.8.1及以上 (可由GNU镜像列表 http://www.gnu.org/prep/ftp.html 或自动选择最佳镜像 http://ftpmirror.gnu.org 下载 ) ppl库...Download/) isl 版本 0.10 (可由GNU镜像列表 http://www.gnu.org/prep/ftp.html 或自动选择最佳镜像 http://ftpmirror.gnu.org 中gcc
将文件编译为静态库.a # 将cJSON.c编译为cJSON.o, -c只编译不连接 ➜ gcc -c cJSON.c # 组合为静态链接库....使用cJSON.o创建静态库libcJSON.a ➜ ar -r libcJSON.a cJSON.o # 将静态库作为一个系统共享的静态链接库(lib文件夹) ➜ cp libcJSON.a /usr.../local/lib # 此时就可以使用 -l 参数去使用静态库了. ➜ gcc main.c -o main -lcJSON 将文件编译为动态链接库.so # 编译动态链接库 # # -fPIC:...Position-Independent Code 生成位置无关的代码 ➜ gcc -fPIC -shared -o main.so main.c
GCC 原名为 GNU C 语言编译器(GNU C Compiler),因为它原本只能处理C语言。GCC 很快地扩展,变得可处理 C++。...生成调试信息 -w:不生成任何警告 -Wall:生成所有的警告 ---- gcc编译的四个步骤 预处理:gcc -E Test.c -o Test.i 编译: gcc -S Test.i -o...Test.s 汇编: gcc -c Test.s -o Test.o 链接生成可执行文件: gcc Test.o -o Test ---- 简单程序的编译过程 1....②编译: gcc的-S选项,表示在程序编译期间,将我们的代码编译成汇编语言。...③汇编: gcc的-c选项,表示由汇编器负责将刚才的.s文件编译为目标文件,即计算机所能识别的序列。
静态链接的优缺点 区分动/静态链接 查看链接属性 指定静态链接 总结 编译的过程 在正式开始之前首先对编译和链接进行一个整体的了解 1.预处理阶段 a.预处理工作:展开头文件,去注释,宏替换和删除 gcc...-E test.c -o test.i -E表示程序开始翻译,当执行完预处理就停下来 -o表示将预处理后形成的临时文件(名字任取) 在vim底行模式下输入:vs+文件名即可打开多个文件 安装gcc...:sudo yum -y install gcc b.外部定义宏参数 gcc test.c -DSHOW//在外部给test.c定义宏SHOW gcc+文件名不加任何选项就是直接将源代码翻译成可执行程序...:前缀为lib,后缀为.a libc.so.6去掉前缀lib和后缀.so以及版本号.6,最后只剩下c,所以这个是C标准库 指定静态链接 当我不指定时Linux将自动采用动态链接,如果要使用动态链接就要在编译生成可执行文件时加上...static选项gcc test.c -o mytest -static 如果系统中没有动态库只有静态库,那么即使不指定-static,生成的可执行文件也是动态链接的 总结 1.下载一个C
Linux 编译安装 GCC 4.8 详见: Linux 编译安装 GCC 4.8 GCC4.8发布啦,这个脚本在之前4.7的基础上做了点改进,移除一些过时的组件,增加了检测不到时自动下载源码包 PS:...4.8.1开始全面支持C++11特性,并且脱离了ppl库,gdb也开始脱离ppl库了 编译安装 GCC 4.8.X 在执行 install.sh 脚本前安装 ncurses-devel 和 python-devel..., 用于编译gdb和开启python功能 安装完成后,把[GCC源码目录]/libstdc++-v3/python 复制到[用户目录]/.gdb 编辑[用户目录]/.gdbinit,添加 编译安装gdb...到4.8.1,更新基础库,更新gdb到7.6,添加clean功能,gdb添加python支持(用于pretty-printer) 2013-10-29 更新gcc到4.8.2,更新gdb到7.6.1,更新...到4.8.3,更新gdb到7.7.1,完全移除对ppl的依赖,同步gcc4.9编译脚本中修复的一些问题,增加编译选项等 2015-02-09 更新gcc到4.8.4(未测试,貌似这个版本加入了jit)
领取专属 10元无门槛券
手把手带您无忧上云