-
-E 仅预处理, 不编译
-
-S 仅编译, 不汇编
-
-c 仅编译汇编, 不链接
-
-o 输出文件
-
-O0~3 优化等级
-
-g 添加调试信息
-
-Dmacro=... 添加宏定义
-
-Wl,option 传递选项给链接器 (ln, 当 gcc 用做链接时有效)
-
-I include 文件路径
-
-MM 生成依赖关系规则 (供 makefile 使用)
-
-L 链接库路径
-
-l 链接库名 (-laaa = libaaa.{a,so}, 或 -l libaaa.a)
-
-pthread
线程级并行支持, 编译链接均加入 -fopenmp -pthread.
-
编译选项: -fPIC
-
链接选项 gcc -shared -o xxx.so xxx.o yyy.o ..
默认情况, 在使用动态链接库前需要安装, 安装步骤为
-
将 xxx.so 拷贝入 /usr/lib (或 /usr/local/lib) (或者在 LD_LIBRARY_PATH 中增加 xxx.so 所在目录)
-
运行 ldconfig
如果明确知道 xxx.so 的位置, 也可以在链接最终的可执行文件 ELF 时使用
-Wl,-rpath=<dir>
选项将 <dir> 作为该 ELF 运行时查找动态链接库的路径.
-Wl,-rpath-link=<dir>
选项用于在链接时指定查找目标所依赖的动态链接库对象的路径.
ar rv xxx.a xxx.o yyy.o ...