用户名: 密码: 忘记密码? 注册

Gcc_Simple_Intro.

作者:  时间: 2010-12-07
【编译|链接】
1) 编译:将源程序转换为可执行的二进制代码(【目标文件】)。
Windows:
xxx.c  ==>  xxx.obj | xxx.dll | xxx.lib
Linux:
xxx.c  ==>  xxx.o
2) 链接:将程序中调用的【函数库】的【目标代码】与程序的【目标文件】整合。

Gcc Tool
功能:
预编译、编译、链接。
参数:
-c 只编译不链接。输出“.o“文件。
-S 原代码转化为汇编。输出“.s“文件。
-o 链接。输出可执行文件。

-O 根据【硬件平台】的特性进行优化。O3/O2/O1三种级别的优化。
-g 产生gdb所必需的符号信息。

-I  DirName 【头文件搜索目录】中加入DirName目录。
-L DirName 【函数库搜索目录】中加入DirName目录。即搜寻".a"库文件。
-l  name 【-L 选项指定目录 | 系统预设目录】下加载“libname.a”的函数库。
过程:
编译:gcc -c -O -I DirName xxx.c
链接:gcc -L DirName -lxxx  xxx.o -o xxx


动态链接库:
编译:gcc -fPIC -c xxx.c
-fPIC 通知gcc产生可以重定位的目标代码。
链接:gcc xxx.o -shared -o libxxx.so

使用:
1) export LD_LIBRARY_PATH=/sharedlib/path/...
2) dlopen + dlsym + dlclose