首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

linux下使用gcc编译运行C程序

gcc(GNU Compiler Collection)是Linux下最常用的C语言编译器,是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Object C等语言编写的程序。 ...在linux系统中,常见的使用方法有两种,如下: gcc -o out in1 in2 //gcc编译以及链接(对in1文件和in2文件进行编译生成...out.o文件,“-c”:表示只生成*.o文件) 若在arm板里运行,就需要在linux系统中使用arm-linux-gcc交叉编译才行: arm-linux-gcc -o out in1...in2 //gcc编译以及链接(对in1文件和in2文件进行编译生成out.bin文件,“-o”:表示生成可执行文件) arm-linux-gcc -c...以编译两个程序a.c和hello.c为示例: vi a.c                                 //编辑a.c , 它将被hello.c调用,前提是这两个文件必须在同一目录下

7.3K90

linux下使用gcc编译运行C程序

gcc(GNU Compiler Collection)是Linux下最常用的C语言编译器,是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Object C等语言编写的程序。 ...在linux系统中,常见的使用方法有两种,如下: gcc -o out in1 in2 //gcc编译以及链接(对in1文件和in2文件进行编译生成...out.o文件,“-c”:表示只生成*.o文件) 若在arm板里运行,就需要在linux系统中使用arm-linux-gcc交叉编译才行: arm-linux-gcc -o out in1...in2 //gcc编译以及链接(对in1文件和in2文件进行编译生成out.bin文件,“-o”:表示生成可执行文件) arm-linux-gcc -c...以编译两个程序a.c和hello.c为示例: vi a.c                                 //编辑a.c , 它将被hello.c调用,前提是这两个文件必须在同一目录下

6K70
您找到你想要的搜索结果了吗?
是的
没有找到

gcc命令

在Linux底下搞开发,不可避免的要使用到gccgcc选项众多,下面记录下常见的一些选项,网上好多博客也说这个但是很多的都是不对的,我的博客记录参见man gcc,应该还是比较准的 常用的选项: gcc...输出文件 -D 指定宏 -Ixxx 指定头文件搜索目录xxx(没有空格) -Wall 打开警告信息 -O 优化 -g 调试信息 -std 指定语言标准 -Ldir 把dir加到库文件的搜索路径中,而且gcc...使用了-g选项,生成的app体积会变大,其中包含相应的调试信息,可以使用gdb的list选项进行查看 -O(优化) -O(大写)有几个优化级别0-3,数字越大优化的级别越高,意味着你的程序相对高效快速...GCC performs nearly all supported optimizations that do not involve a space-speed tradeoff....-L在指定路径后并没有指定目标文件,所以要用到-l 参数指定文件 比如: gcc -o hello hello.c -I..

1.1K80

gcc编译c语言程序以及其编译过程

gcc -o hello.s hello.i -S 或者 gcc -o hello.s -S hello.i 或者 gcc -S hello.i -o hello.s (-S 参数:是gcc对目标文件进行编译...gcc -o hello.o hello.s -c 或者 gcc -o hello.o -c hello.s 或者 gcc -c hello.s -o hello.o (-c 参数:是gcc对目标文件执行指令转换的操作...gcc -o hello hello.o  或者 gcc hello.o -o hello(注意:gcc没有单独的链接参数) 将系统库函数与hello.o进行链接(简言之合并),得到可执行的程序,该程序的名字叫...----------------------------------------------------------------------------- 5、程序运行 ?...(即可执行程序需要用到什么库呢?) 使用命令 ldd hello 查看。 ? (注意;用c语言写的代码依赖的库最少,如果使用其他语言依赖的库更多哦!!需要装好多包包。)

1.6K10

GCC 优化级别

参数 -O1、-O2、-O3 中,随着数字变大,代码的优化程度也越高,不过这在某种意义上来说,也是以牺牲程序的可调试性为代价的。 4....参数 -Og 是在 -O1 的基础上,去掉了那些影响调试的优化,所以如果最终是为了调试程序,可以使用这个参数。...参数 -Os 是在 -O2 的基础上,去掉了那些会导致最终可执行程序增大的优化,如果想要更小的可执行程序,可选择这个参数。 6....如果想知道上面的优化参数具体做了哪些优化,可以使用 gcc -Q --help=optimizers 命令来查询,比如下面是查询 -O3 参数开启了哪些优化: $ gcc -Q --help=optimizers...有关gcc优化的更多详细信息,请参考gcc的官方文档: https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options

7.4K10

升级GCC版本到8.3(多GCC版本共存)

下载GCC8.3源码(附件中也有) GCC的源码仓库地址为: https://github.com/gcc-mirror/gcc ,在浏览器打开这个网址后,不要急于下载,先选择gcc的版本,如下图所示...记得一定要root权限, 不然可能会因为权限不足安装失败. sudo -s make install 这时整个gcc的安装过程已经成功执行完成, 按如下方法测试GCC是否正确安装: /usr/local...另外也可以直接gcc --version测试一下gcc 4.8.5的状态. image.png 两者都能够正确的访问. 4....运行GCC8.3 因为我们不是替换安装的方式, 所以运行需要的库默认是没有被添加到系统路径下的, 我们还需要额外的一步操作才能让gcc8.3编译出的程序正常的运行: export LD_LIBRARY_PATH...多GCC版本导致的ABI兼容问题 需要特别注意的是ABI兼容的问题, 有部分库我们可能是直接使用的第三方的, 没有源码, 那么可能对应库依然是使用GCC4.8编译的, 默认开启C++11后GCC会同样更改应用程序

7.9K20

gcc编译成动态库_gcc动态库

gcc常用编译选项: 选项 含义 -static 链接静态库,禁止使用动态库 -shared 进行动态库编译,链接动态库 -Ldir 在动态库的搜索路径中增加dir目录 -lname 链接静态库(libname.a...)或动态库(libname.so)的库文件 -fPIC(或fpic) 生成使用相对地址无关的目标代码 方法一: 第一步:使用-shared参数生成动态库,gcc -shared -fPIC -o libtest.so...第二步:编译main.c,使用libtest.so动态库,gcc -o main main.c -L/usr/lib64/ -ltest 方法二: 在编译main.c,并链接libtest.so的时候,...直接指定使用当前目录下的libtest.so文件, 使用命令:gcc -o main main.c ....发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/187545.html原文链接:https://javaforall.cn

1.4K60
领券