华为云鲲鹏云服务器gcc编译源代码实验
-
将文件上传到服务器中
-
进行预处理:生成.i文件
[root@node gcc编译使用源代码]# gcc -E main.c -o main.i [root@node gcc编译使用源代码]# gcc -E sqrtSum.c -o main.i [root@node gcc编译使用源代码]# ll total 100 -rw-r--r-- 1 root root 375 May 28 16:34 main.c -rw-r--r-- 1 root root 40262 May 28 16:36 main.i -rw-r--r-- 1 root root 109 May 28 16:34 sqrtSum.c -rw-r--r-- 1 root root 93 May 28 16:34 sqrtSum.h -rw-r--r-- 1 root root 46114 May 28 16:36 sqrtSum.i
-
进行编译:生成.s文件
[root@node gcc编译使用源代码]# gcc -S main.i -o main.s [root@node gcc编译使用源代码]# gcc -S sqrtSum.i -o sqrtSum.s [root@node gcc编译使用源代码]# ll total 108 -rw-r--r-- 1 root root 375 May 28 16:34 main.c -rw-r--r-- 1 root root 40262 May 28 16:36 main.i -rw-r--r-- 1 root root 1133 May 28 16:37 main.s -rw-r--r-- 1 root root 109 May 28 16:34 sqrtSum.c -rw-r--r-- 1 root root 93 May 28 16:34 sqrtSum.h -rw-r--r-- 1 root root 46114 May 28 16:36 sqrtSum.i -rw-r--r-- 1 root root 651 May 28 16:37 sqrtSum.s
-
进行汇编:生成.o文件
[root@node gcc编译使用源代码]# gcc -c main.s [root@node gcc编译使用源代码]# gcc -c sqrtSum.s [root@node gcc编译使用源代码]# ll total 116 -rw-r--r-- 1 root root 375 May 28 16:34 main.c -rw-r--r-- 1 root root 40262 May 28 16:36 main.i -rw-r--r-- 1 root root 2040 May 28 16:38 main.o -rw-r--r-- 1 root root 1133 May 28 16:37 main.s -rw-r--r-- 1 root root 109 May 28 16:34 sqrtSum.c -rw-r--r-- 1 root root 93 May 28 16:34 sqrtSum.h -rw-r--r-- 1 root root 46114 May 28 16:36 sqrtSum.i -rw-r--r-- 1 root root 1480 May 28 16:38 sqrtSum.o -rw-r--r-- 1 root root 651 May 28 16:37 sqrtSum.s
-
进行链接
[root@node gcc编译使用源代码]# gcc -o sqrtSum main.o sqrtSum.o -lm [root@node gcc编译使用源代码]# ll total 136 -rw-r--r-- 1 root root 375 May 28 16:34 main.c -rw-r--r-- 1 root root 40262 May 28 16:36 main.i -rw-r--r-- 1 root root 2040 May 28 16:38 main.o -rw-r--r-- 1 root root 1133 May 28 16:37 main.s -rwxr-xr-x 1 root root 75448 May 28 16:39 sqrtSum -rw-r--r-- 1 root root 109 May 28 16:34 sqrtSum.c -rw-r--r-- 1 root root 93 May 28 16:34 sqrtSum.h -rw-r--r-- 1 root root 46114 May 28 16:36 sqrtSum.i -rw-r--r-- 1 root root 1480 May 28 16:38 sqrtSum.o -rw-r--r-- 1 root root 651 May 28 16:37 sqrtSum.s
由于sqrt函数所以需带上
-lm
选项来表示链接外部库使用sqrt函数 -
运行测试
[root@node gcc编译使用源代码]# ./sqrtSum 2 3 sqrt 2.000000 + sqrt 3.000000 = 3.146264