C语言库函数---linuxC---Makefile

CC = gcc -g -Wall -shared -fPIC -lcrypto -rdynamic -lhikos_common

all:
@$(CC) libhikos_ceph.c -o libhikos_ceph.so
@cp libhikos_ceph.so /home/hikos/system/lib64/
@chmod 777 /home/hikos/system/lib64/libhikos_ceph.so
@rm -f /lib64/libhikos_ceph.so
@ln -s /home/hikos/system/lib64/libhikos_ceph.so /lib64/libhikos_ceph.so
@gcc -Wall -g -rdynamic -lhikos_storage -lhikos_common -lhikos_ceph -o cli_ceph cli_ceph.c
@cp -f cli_ceph /home/hikos/system/bin/
@echo “MakeInstall: libhikos_ceph.so”
clean:
@rm -f cli_ceph libhikos_ceph.so
@echo " MakeClean: libhikos_ceph.so libhikos_ceph.o"

-g: 令 gcc 生成调试信息,该选项可以利用操作系统的“原生格式(native format)”生成调试信息。GDB 可以直接利用这个信息,其它调试器也可以使用这个调试信息
加上-g选项以后,gcc在编译时会做以下额外的操作:

  1. 创建符号表,符号表包含了程序中使用的变量名称的列表。
  2. 关闭所有的优化机制,以便程序执行过程中严格按照原来的C代码进行。
    -Wall:显示所有警告
    -shared:表示调用动态库
    -fPIC:作用于编译阶段,告诉编译器产生与位置无关代码(Position-Independent Code),则产生的代码中,没有绝对地址,全部使用相对地址,故而代码可以被加载器加载到内存的任意 位置,都可以正确的执行。这正是共享库所要求的,共享库被加载时,在内存的位置不是固定的。
    -lcrypto:链接libcrypto.so这个库
    -rdynamic:是一个 连接选项 ,它将指示连接器把所有符号(而不仅仅只是程序已使用到的外部符号)都添加到动态符号表(即.dynsym表)里,以便那些通过 dlopen() 或 backtrace() (这一系列函数使用.dynsym表内符号)这样的函数使用。
    -lhikos_common :链接hikos_common库
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值