• 嵌入式-基础二


    SSH服务
    检查安装了那些:dpkg –l |grep –i ssh #应安装 server 和client(自带)
    安装:apt-get install openssh-server
    提示解析失败原因:1.中途更换网络,重启解决。
    2.改/etc/resolvconf/resolv.conf.d/base文件,
    加入dns服务器地址:nameserver 202.96.134.133
    nameserver 8.8.8.8
    sudo /etc/init.d/ssh start # 启动服务

    一个test.c文件的 预处理,编译,汇编,链接

    #include<stdio.h>
    int main()
    {
      printf("wrap me in plastic ");
    }

    法1:gcc -o test.exe test.c

      ./test.exe

    法2:  gcc -E test.c > test.i  #预处理

        gcc -S test.i -o test.s  #编译

        gcc -c test.s -o test.o  #汇编

        gcc test.o -o test.exe  #链接

        ./test.exe        #执行

    *****标准I/O

     

    使用sudo apt-get install 安装软件的时候报错:

    dpkg: 处理归档 /var/cache/apt/archives/libexpat1-dev_2.2.5-3_amd64.deb (--unpack)时出错:
     正试图覆盖 /usr/include/expat.h,它同时被包含于软件包 expat-devel 2.2.6-2
    dpkg-deb: 错误: 子进程 粘贴 被信号(断开的管道) 终止了
    在处理时有错误发生:
     /var/cache/apt/archives/libexpat1-dev_2.2.5-3_amd64.deb
    E: Sub-process /usr/bin/dpkg returned an error code (1)

    终端输入  sudo dpkg -i --force-overwrite /var/cache/apt/archives/*.deb  然后再执行就没问题了

     makefile 编写例子

      包含本目录下的.h文件,使用include" "  ,make 过后正常运行可执行文件使用命令  ./

      若会修改头文件,将头文件包含到main.c中,这样每次编译一定会重新编译到

      第一个目标文件指定完备所有的依赖文件。例如

    1 main:main.o aa.o bb.o  
    2     gcc -o main main.o aa.o bb.o    #行前要有Tab
    3 aa.o:
    4     gcc -o aa.o -c aa.c
    5 .PHONY:clean rebuild
    6 clean:
    7     rm -f main.o aa.o bb.o *~
    rebuild:clean main

     变量方式

        变量分类:用户自定义变量,自动变量,预定义变量,环境变量。

      格式:变量名:=变量值  或  变量名=变量值

      

    1 SOURCE:=test.o 1.c
    2 EXE:=test
    3 $(EXE):$(SOURCE)
    4      gcc -o $(EXE) -c test.c
    5 test.o:test.c   
    7     gcc -o test.o -c test.c

     隐含规则:.o文件自动依赖.c或.cc文件,是cc编译器进行编译,  上面蓝色的规则可缺省。

    %.o:%.c      #采用模式匹配,指定gcc编译器编译
    gcc -o $@ -c $^  #必须这种格式,可以不报错
    
    

    自动变量:$@  当前规则目标文件  #写在规则里面用作代替

    $<  当前规则第一个依赖文件  $^  所有的依赖文件

    eg:

    $(EXE):$(SOURCE)
         gcc -o $@ $^  #这两个是不一样的,命令前加 @  静默执行,将不显示命令

    test.o:test.c
        gcc -o $@ -c $^
    预定义变量:系统里面设定好的变量
      把生成的后缀相同文件放到指定位置,每一个生成的变量前面都要引用目录变量。
    DIR:=./mulu/
    $(DIR)test:$(DIR)test.o $(DIR)1.o
      gcc -o $(DIR)test $(DIR)test.o $(DIR)1.o -c test.c 1.c
    
    

     执行时  ./test  就可以

    当makefile文档名不是 makefile时执行时加上 make -f filename

    两系统间复制粘贴:

    第一步: sudo apt-get autoremove open-vm-tools

    第二步:sudo apt-get install open-vm-tools-desktop


    定时清理内存:

      创建cleanCache.sh

    #!/bin/bash
    # 每一小时清除一次缓存
    echo "开始清除缓存"
    sync;sync;sync #写入硬盘,防止数据丢失
    sleep 10 #延迟10秒
    echo 3 > /proc/sys/vm/drop_caches

    chmod +x cleanCache.sh  #设置可执行

    ./cleanCache.sh    #以管理员身份创建任务

    修改/etc/rsyslog.d/50-default.conf   文件,删除 cron.* 前面的注释符号#

    sudo  service rsyslog  restart 

    sudo  service cron restart 

    #######若提示没有cron,尝试 :apt-get install --reinstall rsyslog  再运行  ./cleanCache.sh

    查看日志文件:tail -f /var/log/cron.log  #按CTRL+c退出

     

  • 相关阅读:
    LeetCode. 476. Number Complement
    LeetCode 172.Factorial Trailing Zeroes
    原码,反码,补码笔记
    python3笔记
    django笔记(python web框架)
    mysql 8.0 主从复制配置
    centos 7系统安装mysql 8.0
    MobaXterm无法退格删除
    Oracle数据泵常用命令
    oracle查年度周末日期
  • 原文地址:https://www.cnblogs.com/wddx5/p/12402641.html
Copyright © 2020-2023  润新知