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

简介: 【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!

相关文章
|
9月前
|
编译器 C语言 Windows
编译&执行C程序
编译&执行C程序。
62 2
|
9月前
|
编译器 C++
如何判断一段程序是由 C 编译程序还是由 C++ 编译程序编译的?
如何判断一段程序是由 C 编译程序还是由 C++ 编译程序编译的?
|
SQL Java 数据库连接
第一个JDBC程序
第一个JDBC程序
|
C语言 C++
第一个C程序
第一个C程序
129 0
第一个C程序
|
C语言
一文解决C程序的编译问题
对于C源码编译,大部分人都停留在./configure --prefix=XXX && make && make install这一步,大部分的程序都能顺利走完这一步,然后被安装到指定的文件下,小部分的程序会因为xxx不全而出错,然后你把这个问题放到搜索引擎上,就会找到一篇博客说用sudo apt-get/yum install xxx 后可以解决问题,然后问题解决了。
969 0
|
C语言 编译器 程序员