linux编译学习

1 使用echo命令查看单个环境变量。例如: 
e
o $PATH 
2 使用env查看所有环境变量。例如: 
env 
3 使用set查看所有本地定义的环境变量。
4.so文件:动态库
a文件: 静态库
exe文件:可执行程序(linux下以文件属性来标示是否是可执行文件,与后缀名无关)


我们用gcc编译程序时,常常会用到“-I”(大写i),“-L”(大写l),“-l”(小写l)等参数,下面做个记录:


例:
gcc -o hello hello.c   -I/home/hello/include   -L/home/hello/lib    -lworld


1上面这句表示在编译hello.c时:
-I /home/hello/include,表示将/home/hello/include目录作为第一个寻找头文件的目录,寻找的顺序是:/home/hello/include–>/usr/include–>/usr/local/include


也就是指定优先查找的目录,找不到的话查找默认目录
-L /home/hello/lib,表示将/home/hello/lib目录作为第一个寻找库文件的目录, 寻找的顺序是:/home/hello/lib–>/lib–>/usr/lib–>/usr/local/lib


同上,也是指定优先查找的目录
-l word , 表示**寻找动态链接库文件**libword.so(也就是文件名去掉前缀和后缀所代表的库文件)


如果 加上编译选项-static,表示寻找静态链接库文件,也就是libword.a
对于第三方提供的动态链接库(.so),一般将其拷贝到一个lib目录下(/usr/local/lib),或者使用-L来指定其所在目录, 然后使用-l来指定其名称
5.gcc -g -o -c
g 生成gdb
o 后面跟着执行文件名称
c  只生成obj不生成exe ,只编译不连接
-dl   如果使用动态链接库增加 -ldl 库  
-lxxx    l是lib的意思 ,后面跟着库名
gcc -g -o add add.c -lm -llua -ldl
--数据库
  for update加锁只有在commit或rollback后才能自动解锁.所以存储过程中的最后处理一定是commit或rollback


6.int  转负数 二进制完全取反  在加1  就是负数
7.在Linux下删除文件及文件夹(rm)
删除目录、文件 rm(remove)


功能说明:删除文件或目录。
语  法:rm [-dfirv][--help][--version][文件或目录...]
补充说明:执行rm指令可删除文件或目录,如欲删除目录必须加上参数”-r”,否则预设仅会删除文件。 
参  数:
 -d或–directory  直接把欲删除的目录的硬连接数据删成0,删除该目录。 
 -f或–force  强制删除文件或目录。 
 -i或–interactive  删除既有文件或目录之前先询问用户。 
 -r或-R或–recursive  递归处理,将指定目录下的所有文件及子目录一并处理。 
 -v或–verbose  显示指令执行过程。 


 linux删除目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,
现在使用  rm -rf  命令即可。


gdb打印完整字符串
set print element 0

猜你喜欢

转载自blog.csdn.net/qq_28098067/article/details/78327911