gcc常用命令注解

gcc -o hello -O2 hello.c
-o参数指定生成的可执行程序的文件名,-O2是优化级别,该命令会编译生成hello可执行程序。
ldd hello
ldd命令查看链接了那些动态库
nm hello
查看程序里面有那些符号

gcc -o libhello.so -O2 -fPIC -shared hello.c
-fPIC参数声明链接库的代码段是可以共享的,-shared参数声明编译为共享库。编译后的共享库的名字叫libhello.so,这是Linux共享库的一个命名惯例:后缀使用so,而名称使用libxxxx格式
gcc -o main -O2 -L. -lhello main.c
-L参数指定到那个附加路径下去寻找共享库,这里我们指定在当前目录下寻找。-l参数指定链接到那个共享库上面,我们传的参数hello,那么gcc就会自动链接到libhello.so这个共享库上面

如果代码执行时找不到某个库,
我们可以把库所在目录加入/etc/ld.so.conf文件里面,然后执行ldconfig命令即可
如果只想库被特定程序使用,以免共享库之间发生版本冲突,可以在程序启动脚本里面设置LD_LIBRARY_PATH
示例:export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH

如果在shell命令行里面临时执行,我们可以临时指定一下链接路径
export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值