open ------- 打开链接服务器 
clear------------清屏
ls    ----------查看文件目录
ls -all --------查看所有的文件目录
rm -rf  name     -------删除文件
rm -rf ./     -------删除全部
wget    网址   --------- 下载别的东西到服务器
rz            ----------    上传本地文件到服务器
sz   ----------从服务器下载到本地
mkdir   -----------创建文件夹 
cd -------------切换路径
export    feixiang=11111    --------- 定义临时环境变量 
echo $feixiang    ----------使用临时环境变量
vim /etc    ------系统指定目录 
vim   /etc/profile    ------- 在这里面配置全局环境变量
source /etc/profile    -------- 刷新环境变量生效的
填写报错的话 可以  :set noreadonly
tar xvf      ------------------- 解压 ffmpeng

=======权限的问题=================
4 可读  2 可写  1 可执行   
chmod 777  name 赋予最高权限
vim test.txt  ---- 创建文件
-rw-r--r--  1 root root       44 Mar  4 13:57 test.txt           
-rwxrwxrwx  1 root root       44 Mar  4 13:57 test.txt    执行了chmod 777  命令后
drwxr-xr-x  2 root root     4096 Mar  4 13:59 stu
- 代表文件
d 代表文件夹
rw- 当前自身所在用户的权限   
r-- 代表同组的权限
r-- 代表其他用户的权限

r  代表可以读 
w 代表可以写
x 代表可以执行

chmod +x 给三组都分配了 可执行权限
chmod u =r  单独给当前用户一个读的权限
chmod u=r,g=r,o=r   给三组分配可读的权限

vim命令的使用
vim test02.txt -----创建一个文件  默认是命令模式 
cat test02.txt 查看文件信息
i 进入编辑模式  
a 追加的意思也能进入编辑模式
esc 返回到命令模式   
:w 就是保存的意思
:wq  保存并退出  
:q! 强制退出
:set number 显示行号
:行号  就能直接定位到行号
/  就可以搜索相关内容
命令模式下面 
G  :跳转到最下面
gg : 跳转到最上面
k :上一行
j:下一行
h:左边
l:右边

注意点: 
1, 不小心按到ctrl+s 会出现无反应的现象  像死机一样 直接关掉就行了
2, 不要使用小键盘否则会出现奇怪的操作符

========= C 编译原理
编译(就是把人写的代码转换成机器可以认识的指令) LINUX(gcc)  MAC(Clang)
1 预处理阶段(include 宏 ...)     
    gcc -E V.c - o  A.i
2 编译阶段,编译之后 形成汇编代码
     gcc -S A.i - o  A.s
3 汇编处理阶段  把汇编代码处理成计算机可识别的机器码
    gcc -c A.s -o  A.o
o
4 链接阶段,打出可以执行的
    gcc -C A.o -o A 
    ./A  
        
一条命令代替上面4个命令     gcc -C  B.c -o B
如果gcc命令不存在 就运行 yum install gcc 
file 文件名   ------可以看出文件是否可执行
./ 文件名  ---- 执行可执行文件

mv   文件现在的名字     文件修改后的名字  
unzip  文件名    ------- 解压文件

=====================================
使用NDK 编译文件的流程   
看自己手机的架构   大多数是 arm
进入到ndk 目录  
cd toolchains/
cd arm-linux-androideabi-4.9/
cd prebuilt/
cd linux-x86_64/
cd bin/

pwd ---------显示当前的路径
到了bin目录就能看到 NDK 的gcc命令
环境变量作用就来了 
export NDK_GCC="/root/studydir/android-ndk-r17c/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc"
// --sysroot=路径        自动寻找头文件和库文件  
//-isystem 路径  寻找指定的头文件
// 如果同时设置--sysroot=路径  和-isystem 路径 ,-isystem 路径 里面的头文件会覆盖前面的头文件
// 最终效果是 使用--sysroot的库文件   使用-isystem头文件
export STDIO="--sysroot=/root/studydir/android-ndk-r17c/platforms/android-27/arch-arm -isystem /root/studydir/android-ndk-r17c/sysroot/usr/include -isystem /root/studydir/android-ndk-r17c/sysroot/usr/include/arm-linux-androideabi"   // -isystem后面必须有一个英文的空格

=========adb 命令==========
adb push ./main_ndk_exe /sdcard/    把文件放到手机sd卡下面

adb root 
adb remount

======普通打包静态库=========
ar rcs -o libadd.a *.o  ----------------------------  打包静态库  .a文件 
gcc main.c -o main -L . -ladd

=========交叉编译=============可以运行在Android里面的  
export NDK_AR="/root/studydir/android-ndk-r17c/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-ar"
$NDK_AR rcs -o libadd.a *.o  ----------------------------  打包静态库  .a文件

======================动态库  和   静态库 ======================================================

静态库:
libxxxxx.a(静态库包裹了很多.o文件)     .o 文件是二进制文件
编译器: 编译期的时候,把静态库完整copy一份去执行的 
举例: 有一百个地方需要执行静态库 如果需求改变了 静态库被修改 那么100个地方
都要修改重新编译
使用场景 : 如果不想对外开放我们的库 就使用静态库

动态库:
libxxxx.so
运行的时候才回去加载,而且只加载一次 当加载一次之后 在内存中会存在副本 如果
在100个地方使用都是公用的 
使用场景: 百度地图 高德地图 第三方api 全部都是动态库 (对外开放)

编译动态库和静态库:
ndk 编译动态库
$NDKGCC  $STDIO -fPIC -shared get.c -o libget.so
ndk 编译静态库
静态库编译必须使用 ndk 下面的arm-linux-androideabi-ar

$NDKGCC $STDIO  -fPIC -c A.c -o A.o----- 先打包成.o文件

$NDK_AR rcs -o libadd.a *.o  ----------------------------  打包静态库  .a文件  *代表所有的.o文件 也可以指定某一个文件

----------本人自己xshell 配置的全局环境变量----------------------------------------------------
export NDKGCC="/root/studydir/android-ndk-r17c/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc" 
    
export STDIO="--sysroot=/root/studydir/android-ndk-r17c/platforms/android-27/arch-arm -isystem /root/studydir/android-ndk-r17c/sysroot/usr/include -isystem /root/studydir/android-ndk-r17c/sysroot/usr/include/arm-linux-androideabi"  
    
export NDK_AR="/root/studydir/android-ndk-r17c/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-ar"

tar -zcvf 
tar -cf all.tar armeabi-v7a2     压缩armeabi-v7a2 这个文件夹

Xshell 基础命令及其打包静态库和动态库命令相关推荐

  1. Linux基础——gcc编译、静态库与动态库(共享库)

    Linux基础--gcc编译.静态库与动态库(共享库) https://blog.csdn.net/daidaihema/article/details/80902012 Linux基础--gcc编译 ...

  2. adb: createprocessw failed: 系统找不到指定的路径_gcc编译过程、gcc命令参数、静态库和动态库搜索路径...

    一.gcc编译过程 gcc -E hello.c -o hello.s //预处理 gcc -S hello.s -o hello.i //编译 gcc -c hello.i -o hello.o / ...

  3. msvc命令行编译静态库和动态库

    编写一个静态库 编写要打包为静态库的函数,内容如下: // jclib.cpp int func(int a, int b) {return a + b; } 在msvc开发人员命令提示符中执行 cl ...

  4. 静态库和动态库基于Windows和VScode

    VScode配置C/C++环境 静态库和动态库的基本概念 静态库和动态库的创建 静态库和动态库的使用 Makefile写法 一.静态库和动态库的基本概念 静态库和动态库简单理解就是对目标文件的打包操作 ...

  5. 基础IO(文件接口、安装内核源码超详细步骤图解、静态库与动态库)

    基础IO C语言的文件操作接口 fopen fclose fread fwrite fseek 系统调用文件接口 open close read write lseek 安装内核源码 文件描述符&am ...

  6. iOS架构-cocoapods打包静态库(依赖私有库、开源库、私有库又包含静态库)(14)

    前言: iOS工程架构少不了cocoapods 对第三方库的管理,它有着很好的操作性和集中管理的特性.之前的写了不少Xcode 建静态库工程打包.a 和 .framework 的文章,但是我们要先建静 ...

  7. 【Android NDK 开发】Android.mk 配置静态库 ( Android Studio 配置静态库 | 配置动态库与静态库区别 | 动态库与静态库打包对比 )

    文章目录 I . Android Studio 中使用 Android.mk 配置静态库 总结 II . 第三方动态库来源 III . 配置 Android.mk 构建脚本路径 IV . 预编译 第三 ...

  8. Linux命令【三】gcc编译+静态库+动态库+makefile+gdb调试

    用C编译器编译源文件:gcc 源文件 -o 可执行文件名 详细步骤: gcc -E a.c -o a.i预处理器将头文件展开,宏替换,去掉注释 gcc -S a.i -o a.s编译器将C文件变成汇编 ...

  9. IOS15打包静态库

    IOS15打包静态库 环境 xCode13.0 IOS 15 平台 我只用最新的软件. 新建一个静态库, 命名: TestStaticLib 语言我们选中OC 新建一个文件继承NSObject, To ...

最新文章

  1. 没做领导的时候,觉得领导都是傻X!做了领导之后觉得下属才是傻X!
  2. java线程 同步与异步 线程池
  3. 每日一皮:当我在重构时,总是有惊喜出现.......
  4. spring-cloud-sleuth+zipkin追踪服务实现(一)
  5. mysql 排序后 下一条记录_什么是MySQL InnoDB 二级索引的排序?|附实例详解
  6. 并发编程-26 高并发处理手段之服务降级与服务熔断 + 数据库切库分库分表
  7. python怎么发送邮件_Python面试题之如何用Python来发送邮件?
  8. C语言封顶,我们的大屋顶|阳光方舟2.0--C-HOUSE正式封顶
  9. OCR引擎-Tesseract
  10. 200 行代码解读国产数据库阿里 OceanBase 的速度源头!| CSDN 博文精选
  11. 编程入门先学什么python-编程零基础应当如何开始学习 Python?
  12. 自动开票失败可能出现的错误信息
  13. js高级学习笔记(b站尚硅谷)-1-数据类型
  14. 驱动人生病毒清除教程
  15. 信号与系统(十七)—— 傅里叶变换及性质(1)常用函数的傅里叶变换
  16. 5G云游戏革命风云已起,各方势力谁执牛耳
  17. android 9.0 c7Pro,透心凉!三星Galaxy C7 Pro上线,还内置热管
  18. python找最长的单词_318. 最长单词长度乘积(Python)
  19. 智能语音助手调研【简单可行方案及开源代码】
  20. MSC Marc英文界面汉化

热门文章

  1. cuda8.0 出错:/usr/bin/ld: 找不到 -lGL【转】
  2. CMD 禁用 笔记本自带的键盘
  3. SQL AlawaysOn 之四:故障转移集群
  4. [视觉Slam十四讲(2)踩坑记录]第3讲:Fatal error :Eigen/core没有那个文件或目录
  5. 增量式与绝对值编码器的区别
  6. DevOps元素周期表——1号元素 Gitlab
  7. char *p = hello world!
  8. 有没有测试适合哪种发型的颜色软件,染发小测试 看看你的头发适合哪种颜色...
  9. 选拨管理者的一个必要条件
  10. PHP开发api接口安全验证