gcc 编译和链接

1、现在对两个文件生成可执行文件

//thanks.c
#include <stdio.h>
int main(void)

{
    printf("Hello World\n");

    thanks_2();
}

//thanks_2.c
#include <stdio.h>

int thanks_2(void)

{
    printf("Hello World2\n");
    return (1);
}

2、步骤

一、cd 到文件所在目录

二、gcc -c 编译

三、gcc -o 链接

四、./xx  执行

时间: 2024-10-05 20:49:39

gcc 编译和链接的相关文章

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.bin文件,"-o":表示生成可执行文件) gcc -c out in1 in2 // gcc编译不链接(对in1文件和in2文件文件进

GCC编程四个过程:预处理-编译-汇编-链接

在Linux下进行C语言编程,必然要采用GNU GCC来编译C源代码生成可执行程序. 一.GCC快速入门Gcc指令的一般格式为:Gcc [选项] 要编译的文件 [选项] [目标文件]其中,目标文件可缺省,Gcc默认生成可执行的文件名为:编译文件.out我们来看一下经典入门程序"Hello World!"# vi hello.c #include <stdlib.h>#include <stdio.h>void main(void){printf("he

[转载]GCC 编译使用动态链接库和静态链接库--及先后顺序----及环境变量设置总结

来自http://blog.csdn.net/benpaobagzb/article/details/51364005 GCC 编译使用动态链接库和静态链接库 1 库的分类 根据链接时期的不同,库又有静态库和动态库之分. 静态库是在链接阶段被链接的(好像是废话,但事实就是这样),所以生成的可执行文件就不受库的影响了,即使库被删除了,程序依然可以成功运行. 有别于静态库,动态库的链接是在程序执行的时候被链接的.所以,即使程序编译完,库仍须保留在系统上,以供程序运行时调用.(TODO:链接动态库时链

gcc编译的四个阶段:预处理,编译,汇编,链接

1:gcc编译的四个阶段:预处理,编译,汇编,链接 #vi file.c #gcc -E file.c -o file.i//-E查看且预处理后停止编译,-o生成目标文件,-i表示已预处理 #gcc -S file.i -o file.s//-S编译到汇编而不进行汇编和链接 #gcc -c file.s -o file.o//-c编译到目标代码 #gcc file.o -o file//-o 文件输出到文件 # gcc -static file.c -o file//-static禁止使用动态库

C++常见gcc编译链接错误解决方法

除非明确说明,本文内容仅针对x86/x86_64的Linux开发环境,有朋友说baidu不到,开个贴记录一下(加粗字体是关键词): 用“-Wl,-Bstatic”指定链接静态库,使用“-Wl,-Bdynamic”指定链接共享库,使用示例:-Wl,-Bstatic -lmysqlclient_r -lssl -lcrypto -Wl,-Bdynamic -lrt -Wl,-Bdynamic -pthread -Wl,-Bstatic -lgtest("-Wl"表示是传递给链接器ld的参数

GCC 编译过程和链接库

GCC 加工程序的过程 在Linux下进行C语言编程,必然要采用GNU GCC来编译C源代码生成可执行程序. 一.GCC使用 Gcc指令的一般格式为:Gcc [选项] 要编译的文件 [选项] [目标文件] 其中,目标文件可缺省,Gcc默认生成可执行的文件名为:a.out 我们来看一下经典入门程序"Hello World!" # vi  main.c #include <stdio.h> void main () { printf("hello world!\n&q

linux GUN gcc编译四个过程:预处理、编译、汇编、链接

参考博客:http://www.cnblogs.com/qytan36/archive/2010/05/25/1743955.html GCC编译C源码有四个步骤:预处理-----> 编译 ----> 汇编 ----> 链接 四阶段作用:(对应文件后缀依次是:.i>.s>.o>.exe) >预处理 将引进的头文件的代码加入到当前文件中.选项"-E"预处理. 用法:gcc -E hello.c –o hello.i >编译 Gcc首先要检查

GCC 编译使用动态链接库和静态链接库--及先后顺序----及环境变量设置总结

GCC 编译使用动态链接库和静态链接库 1 库的分类 根据链接时期的不同,库又有静态库和动态库之分. 静态库是在链接阶段被链接的(好像是废话,但事实就是这样),所以生成的可执行文件就不受库的影响了,即使库被删除了,程序依然可以成功运行. 有别于静态库,动态库的链接是在程序执行的时候被链接的.所以,即使程序编译完,库仍须保留在系统上,以供程序运行时调用.(TODO:链接动态库时链接阶段到底做了什么) 2 静态库和动态库的比较 链接静态库其实从某种意义上来说也是一种粘贴复制,只不过它操作的对象是目标

学习记录:gcc/g++ 编译与链接

gcc/g++ 编译与链接 编译与链接的过程可以分解为四个步骤:预处理.编译.汇编.链接 预处理:源代码文件和相关的头文件,被预处理器cpp预处理成一个后缀为 .i 的文件(选项:-E) 编译:把预处理完的文件进行一系列的词法分析.语法分析.语义分析以及优化后,产生相应的汇编代码文件,后缀为 .s,(选项 :-S ) 汇编:把编译阶段生成的 .s 文件转成二进制目标代码,后缀为.o,(选项:-c) 链接:把每个源代码模块独立地编译,然后按照要将它们"组装"起来.链接的主要内容就是把各个