⑧安薇理工大学 ANHUI UNIVERSITY OFSCIENCE TECHNOLOG 头文件存放的目录: √/usr/ /include系统头文件 √/usr/oca/ /include本地头文件 共享库及相关配置文件在/etc目录中,其中: Id so. conf包含共享库的搜索位置 Ifconfig共享库管理工具,一般在更新了共享库之后要 运行该命令 ldd可查看可执行文件所使用的共享库 eg.# Edd test查看tes文件的共享库依赖 17
17 头文件存放的目录: ✓/usr/include 系统头文件 ✓/usr/local/include 本地头文件 共享库及相关配置文件在/etc目录中,其中: ld.so.conf 包含共享库的搜索位置 ldconfig 共享库管理工具,一般在更新了共享库之后要 运行该命令 ldd 可查看可执行文件所使用的共享库 e.g. #ldd test, 查看test文件的共享库依赖
⑧安薇理工大学 ANHUI UNIVERSITY OFSCIENCE TECHNOLOG 24gcc的基本用法和选项 >gcc的一般用法为: gcc [options]<filenames> >其常用格式为: gcc [-Cl[-S[-E[-s[-g [-staticl[-shared][-rdynamic [ldir∴l[Ldir∴l[ mylib][oeve] [-x Languagell-Dmacro[defn].] [-Umacroll-mmachine-option ..] [-o out file] infile 18
18 2.4 gcc的基本用法和选项 ➢ gcc的一般用法为: gcc [options] <filenames> ➢ 其常用格式为: gcc [-c][-S][-E][-s][-g] [-static][-shared][-rdynamic] [-Idir …][-Ldir …][-lmylib] [-Olevel] [-x Language] [-Dmacro[=defn] …] [-Umacro][-mmachine-option …] [-o out_file] infile …
⑧安薇理工大学 ANHUI UNIVERSITY OFSCIENCE TECHNOLOG >c:编译后仅输出*o型的目标文件,而不连接生成可执 行程序 S:编译后仅生成汇编语言文件*s,但不生成目标文件 和可执行代码 >-s:生成可执行文件时,删除符号表和重定位信息。生成 成品软件时使用 >-E:在预处理过程后结束,不进行编译和连接,也不生成 可执行代码 >-g:在可执行文件中加入调试信息,便于程序的调试 19
19 ➢ -c:编译后仅输出*.o型的目标文件,而不连接生成可执 行程序 ➢ -S:编译后仅生成汇编语言文件*.s,但不生成目标文件 和可执行代码 ➢ -s:生成可执行文件时,删除符号表和重定位信息。生成 成品软件时使用 ➢ -E:在预处理过程后结束,不进行编译和连接,也不生成 可执行代码 ➢ -g:在可执行文件中加入调试信息,便于程序的调试
⑧安薇理工大学 ANHUI UNIVERSITY OFSCIENCE TECHNOLOG >- o outfile:指定输出文件名。若不指定则生成aout Jdir:将目录dir添加到头文件搜索范围 -amylic:连接时搜索库 libmylib. a e.g. sgcc test.C-Itest-o test4 则搜索 latest, a库进行连接 >Ldir:将目录dir添加到库文件搜索范围 o[L]:编译时进行优化。L为优化级别,分别0-3和s。 生成最终产品时使用 - static:禁止使用共享库(动态连接库) - shared:生成共享库 rdynamic:连接时使用共享库
20 ➢ -o outfile:指定输出文件名。若不指定则生成a.out ➢ -Idir:将目录dir添加到头文件搜索范围 ➢ -lmylib:连接时搜索库libmylib.a e.g. $gcc test.c –ltest –o test4 则搜索libtest.a库进行连接 ➢ -Ldir:将目录dir添加到库文件搜索范围 ➢ -O[L]:编译时进行优化。L为优化级别,分别0~3和s。 生成最终产品时使用 ➢ -static:禁止使用共享库(动态连接库) ➢ -shared:生成共享库 ➢ -rdynamic:连接时使用共享库
⑧安薇理工大学 ANHUI UNIVERSITY OFSCIENCE TECHNOLOG 程序示例 1.c程序 设有一个文件名为heoc的程序,其内容为: include < stdio. h> main printf( Hello World! \n) 21
21 程序示例 1. C程序 设有一个文件名为hello.c的程序,其内容为: #include <stdio.h> main() { printf(“Hello World!\n”); }