一、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<stdio.h> #include<stdlib.h> 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 automake yum -y install wget httpd-tools vim
使用归档工具ar将一些目标文件集中在一起
gcc -c unsgn_pow.c ar 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/lib source /etc/profile
最后切换到创建库的那个文件夹
cd /home/AiY ./pow_test 2 10
运行结果
2 ^ 10 = 1024