本文共 1897 字,大约阅读时间需要 6 分钟。
一、Linux基本操作命令
1、用户切换:普通用户和管理员权限(su)
2、文件的操作 新建:vi、vim或touch 删除:rm 复制:cp、mv 编辑:vi或者vim编辑器、gedit 文件读写权限的修改:chmod -rm-r-r-- 1 root root r(4):读;w(2):写;x(1):可执行 3、目录的操作 新建:mkdir 删除:rmdir(删除空文件夹)、rm -r -f 复制:cp -r 切换:cd 4、网络配置 ifconfig eth0(网卡名称) + ip地址 ping :查看主机之间互通的情况 电脑——虚拟机——开发板之间联系 (配ip地址,要求:ip地址在一个网段内,而且ip地址不能有冲突) 5、压缩与解压 tar、gzip 6、交叉编译器 arm-linux-gcc 可以把.c程序编译成可执行程序,下载到开发板(arm架构)运行 开发板(目标机):处理器、存储器受限 电脑(宿主机):处理器处理能力强,存储大 二、静态库的创建与使用 首先创建unsgn_pow.c文件,包含unsgn_pow()函数的定义://创建文件[root@localhost ~]# cd /home[root@localhost home]# mkdir AiY[root@localhost home]# cd AiY[root@localhost AiY]# touch unsgn_pow.c
编写unsgn_pow.c文件的程序:
unsigned long long unsgn_pow(unsigned int x,unsigned int y){ unsigned long long res=1; if(y==0) { res=1; } else if(y==1) { res=x; } else { res=x*unsgn_pow(x,y-1); } return res;}
然后创建pow_test.c文件,同unsgn_pow.c创建文件的步骤一样
编写pow_test.c文件:#include#include int main(int argc,char *argv[]){ unsigned int x,y; unsigned long long res; if((argc<3)||(sscanf(argv[1],"%u",&x)!=1)||(sscanf(argv[2],"%u",&y)!=1)) { printf("Usage:pow base exponent\n"); exit(1); } res=unsgn_pow(x,y); printf("%u ^ %u = %u\n",x,y,res); exit(0);}
接下来创建静态库
不过前提是先安装 gcc 编译器//运行如下两行,安装完毕即可yum -y install gcc gcc-c++ out autoconf pcre pcre-devel make automakeyum -y install wget httpd-tools vim
使用归档工具ar将一些目标文件集中在一起
gcc -c unsgn_pow.car rcsv libpow.a unsgn_pow.o
下面编译主程序,将会链接到刚生成的静态库libpow.a
gcc -o pow_test pow_test.c -L. -lpow./pow_test 2 10
运行结果
2 ^ 10 = 1024
三、动态库的创建与使用
首先使用gcc的-fPIC选项为动态库构造一个目标文件
gcc -fPIC -Wall -c unsgn_pow.c
接下来,使用-shared选项和已创建的位置无关目标代码,生成一个动态库libpow.so
gcc -shared -o libpow.so unsgn_pow.o
编译主程序,链接刚生成的动态库
gcc -o pow_test pow_test.c -L. -lpow
最后运行程序,不过在运行程序之前,需要注册动态库,执行如下命令即可
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/cluster/.share/libsource /etc/profile
最后切换到创建库的那个文件夹
cd /home/AiY./pow_test 2 10
运行结果
2 ^ 10 = 1024
转载地址:http://ogxzi.baihongyu.com/