-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathgcc1.txt
More file actions
47 lines (27 loc) · 1.23 KB
/
gcc1.txt
File metadata and controls
47 lines (27 loc) · 1.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
GCC:
gcc <option> 起始文件 <-o> <目标文件>
执行:./目标文件
若未指定目标文件名 则默认输出为“name.out”
option:
-E,-S,-c,
gcc检错:
-pedantic 发现部分不符合ANSI/ISO C标准的代码
-Wall 尽可能产生多的警告信息
-Werror 遇到警告停止编译
库文件的链接:
1.gcc –c –I /usr/dev/mysql/include test.c –o test.o 编译到.o目标文件
2.gcc –L /usr/dev/mysql/lib [–static] –lmysqlclient test.o –o test
(默认情况下,gcc链接时优先使用动态链接库)
静态库链接时搜索路径顺序:
1. ld会去找GCC命令中的参数-L
2. 再找gcc的环境变量LIBRARY_PATH
3. 再找内定目录 /lib /usr/lib /usr/local/lib 这是当初compile gcc时写在程序内的
动态链接时、执行时搜索路径顺序:
1. 编译目标代码时指定的动态库搜索路径
2. 环境变量LD_LIBRARY_PATH指定的动态库搜索路径
3. 配置文件/etc/ld.so.conf中指定的动态库搜索路径
4. 默认的动态库搜索路径/lib
5. 默认的动态库搜索路径/usr/lib
有关环境变量:
LIBRARY_PATH环境变量:指定程序静态链接库文件搜索路径
LD_LIBRARY_PATH环境变量:指定程序动态链接库文件搜索路径