标签:style blog color io os 文件 sp div on
开放源码:程序代码,写给人类看的程序语言,机器并不识别,所以无法执行。
编译程序:将开放源码转译成机器看的懂的语言。
可执行文件:经过编译程序变成二进制程序后机器看得懂的可执行的文件。
1)单文件的编译运行
//hello.c #include<stdio.h> int main() { printf("Hello World\n"); return 0; }
开始编译
gcc hello.c
生成文件可执行文件a.out, 运行a.out
./a.out
输出运行结果
Hello World
2) 多文件的编译
// thanks.c #include<stdio.h> int main(void) { printf("Hello World\n"); thanks2(); return 0; }
// thanks2.c #include<stdio.h> void thanks2() { printf("Thank you!\n"); }
编译文件:
gcc -c thanks.c thank2.c
生成两个目标文件 thanks.o, thanks2.o.
进行链接 :
gcc -o thanks thanks.o thanks2.o
生成可执行文件 thanks, 执行thanks
./thanks
输出结果
Hello World
Thank you!
假如要在函数中调用sin函数, 由于sin函数是在libm.so这个函数库中, 就需要在编译与链接的时候把libm.so函数库链接进执行文件
gcc sin.c -lm -L/lib -L/user/lib
其中
-l: 是加入某个函数库的意思
m: 则是加入libm.so或者libm.a函数库的意思. (lib与扩展名.a, .so不需要写)
-L: 则表示在后接的路径/lib 和/user/lib中搜索函数库(事实上,这两个函数库路径是默认的, 可以略去)
此外, 对于源文件中的 #include <stdio.h>, 需要在/usr/include/stdio.h 找到.当头文件放在其他位置时,就需要通过如下语句来读取头文件放置的目录
gcc sin.c -lm -I/user/include
标签:style blog color io os 文件 sp div on
原文地址:http://www.cnblogs.com/junxie/p/4018487.html