CentOS简单操作(三)

本文介绍了C语言中字符和字符串的基本操作,并详细讲解了如何创建及使用动态链接库(libxxx.so)。此外,还提供了通过Makefile进行编译和安装的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、C语言中的字符和字符串

字符类型char为基本类型,只能表示一个字符
char ch = 'a';
printf("ch is %c\n",ch);
字符串可以用字符数组表示
char ch[] = "xiaosa";
printf("ch is %s\n",ch);
字符串也可以用字符指针来表示
char *ptr = "xiaosa";
int i;
for(i=0;i<6;i++)
{
   printf("%c\n",*ptr);
   ptr++;
}

二、动态链接库(libxxx.so)

把me.c变成动态链接库

gcc -shared me.c -o libme.so
gcc -L ./ -l me xiaosa.c -o xiaosa
会生成可执行程序xiaosa
执行./xiaosa会报:./xiaosa: error while loading shared libraries: libme.so: cannot open shared object file: No such file or directory的错误
再通过执行ldd xiaosa来查看可执行性程序的依赖,会发现libme.so => not found
只有将我们生成的动态链接库libme.so拷贝到/lib或者/lib64或者/usr/lib或者/usr/lib64的目录下,再“更新”动态链接库,系统就可以找到这个libme.so了
cp libme.so /usr/lib
ldconfig
在执行可执行程序./xiaosa就不会报错,执行ldd xiaosa就可以发现libme.so => /usr/lib/libme.so

三、修改makefile文件执行make && make install

将上面生成动态链接库和联合编译的过程写到makefile中。
先删除刚才生成的libme.so和xiaosa
rm -rf libme.so xiaosa
修改makefile文件
xiaosa:xiaosa.c libme.so
<tab>gcc -L ./ -l me xiaosa.c -o xiaosa
libme.so:me.c
<tab>gcc -shared me.c -o libme.so
install:
<tab>cp ./libme.so /usr/lib
<tab>ldconfig

执行make就会编译生成libme.so和xiaosa
再执行make install执行拷贝操作
也可以直接执行make && make install
再执行./xiaosa
我们在编译执行一些软件的时候基本上都要使用make和make install,实际上就是执行编译和复制的过程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值