主程序、子程序链接、子程序的编译

简介: 【5月更文挑战第14天】主程序、子程序链接、子程序的编译。

例子,以thanks.c这个主程序去调用 thanks_2.c这个子程序:
1.撰写所需要的主程序、子程序
[root@Server01 ~]# vim thanks.c

include

int main(void)
{
printf("Hello World\n");
thanks_2();
}
上面的thanks_2()就是调用子程序!
[root@Server01 ~]# vim thanks_2.c

include

void thanks_2(void)
{
printf("Thank you!\n");
}

例子,以thanks.c这个主程序去调用 thanks_2.c这个子程序:
2.进行程序的编译与链接(Link)
(1)开始将源码编译成为可执行的 binary file(警告信息可忽略)。
[root@Server01 ~]# gcc -c thanks.c thanks_2.c
[root@Server01 ~]# ll thanks
-rw-r--r--. 1 root root 76 Jul 15 21:27 thanks_2.c
-rw-r--r--. 1 root root 1504 Jul 15 21:27 thanks_2.o <==编译生成的目标文件!
-rw-r--r--. 1 root root 91 Jul 15 21:25 thanks.c
-rw-r--r--. 1 root root 1560 Jul 15 21:27 thanks.o <==编译生成的目标文件!
[root@Server01 ~]# gcc -o thanks thanks.o thanks_2.o <==小写字母o!
[root@Server01 ~]# ll thanks

-rwxr-xr-x. 1 root root 8584 Jul 15 21:28 thanks <==最终结果会生成可执行文件
(2)执行可执行文件。
[root@Server01 ~]# ./thanks
Hello World
Thank you!

相关文章
|
3月前
|
API
MASM32编程用两种方法运行外部程序并等待其结束
MASM32编程用两种方法运行外部程序并等待其结束
|
7月前
|
编译器 C语言 Windows
编译&执行C程序
编译&执行C程序。
55 2
|
7月前
|
编译器 C++
如何判断一段程序是由 C 编译程序还是由 C++ 编译程序编译的?
如何判断一段程序是由 C 编译程序还是由 C++ 编译程序编译的?
西门子S7-200 SMART全局变量和局部变量如何使用,编写带参数子程序并调用
上篇文章中我们学习了西门子S7-200 SMART项目的编译、下载、运行调试及上传,本篇我们来介绍西门子S7-200 SMART的全局变量和局部变量如何使用,以及如何在编程软件STEP7-Micro/WIN SMART中编写带参数子程序并调用。我们先来介绍一下什么是全局变量和局部变量。符号表中定义的变量又称为全局变量,在所有的POU中都有效,在变量表中定义的变量称为局部变量,只在创建它的POU内部有效。
西门子S7-200 SMART全局变量和局部变量如何使用,编写带参数子程序并调用
|
Linux C语言
介绍几种LINUX编程中非常实用的调试程序宏变量
介绍几种LINUX编程中非常实用的调试程序宏变量
9、IAR中断向量表与中断服务函数的编写
9、IAR中断向量表与中断服务函数的编写
261 0
|
编译器 C语言
Win知识 - 程序是怎样跑起来的——汇编语言和本地代码是一一对应的
Win知识 - 程序是怎样跑起来的——汇编语言和本地代码是一一对应的
142 0
Win知识 - 程序是怎样跑起来的——汇编语言和本地代码是一一对应的
|
C语言
一文解决C程序的编译问题
对于C源码编译,大部分人都停留在./configure --prefix=XXX && make && make install这一步,大部分的程序都能顺利走完这一步,然后被安装到指定的文件下,小部分的程序会因为xxx不全而出错,然后你把这个问题放到搜索引擎上,就会找到一篇博客说用sudo apt-get/yum install xxx 后可以解决问题,然后问题解决了。
962 0