failed to resolve: maybe a missing crate front_of_house ?failed to resolve: use of undeclared crate

前言

在学习 Rust 时,官方文档 的 7.3 节的例子中(创建模块和引用),出现了以下错误:

解决方法

方法也很简单,如果是使用 cargo new –lib name 创建的模块的话,默认在 src/lib.rs 中的第一行会添加:

#[cfg(test)]

只要注释掉这一行即可。即

//#[cfg(test)]
2021-04-22    
OSC9th操作系统概念第二章编程题

题目描述

2.3 节描述了一个程序,以将一个文件内容复制到另一个目标文件。这个程序首先提示用户输入源文件名和目标文件名。利用 windows 或 POSIX 的 API,编写这个程序。确保包括所有必要的错误检查以及源文件是否存在。

程序

#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>

int main(void)
{
    char sourceName[100];
    char objName[100];
    int fd1, fd2;
    printf("请输入源文件的名字:");
    scanf("%s", sourceName);
    /*读文件*/
    fd1 = open(sourceName, O_RDONLY);
    /*错误时返回-1*/
    if (fd1 == -1){
        /*print a system error message*/
        perror(sourceName);
        return EXIT_FAILURE;
    }

    printf("请输入目标文件名:");
    scanf("%s", objName);
    char buf[128];
    /*写文件
      O_WRONLY 写入
      O_CREAT 如果不存在则创建改文件
    */
    fd2 = open(objName, O_WRONLY|O_CREAT);

    /*read系统调用,正常情况下返回读取的字符位数,错误时返回-1, 读取到文件结尾时返回0*/
    while (read(fd1, buf, 1) != 0){
        write(fd2, buf, 1);
    }
    close(fd1);
    close(fd2);
    return 0;
}

系统调用

本题使用了多个系统调用

2021-03-15    
openSSH实现免密登录

001

首先在客户端使用 ssh-keygen -t rsa 生成一对密钥,当系统提示输入与密钥相关的密码时,直接按下 Enter 键即可。

这样,会在 ~/.ssh/ 下生成两个密钥,一个是私钥 id_rsa,一个是公钥 id_rsa.pub

image-20210213161224537

002

使用 scp命令将公钥 id_rsa.pub 上载到远程服务器中的 ~/.ssh/中,

image-20210213162146448

转移到远程机器中,并将其内容追加到同一目录中的 authorized_keys 中。

image-20210213162317011

END

image-20210213162456242

2021-02-09    
GNU Linux统计文件夹(目录)占用的磁盘大小

在 Linux 中使用 ls时,显示的文件夹大小始终为 4kb。这是因为在 Linux 中目录也是一个文件,里面存储着特有的数据结构,所以 ls 显示的就是这个目录文件的大小,并不是这个目录中所有文件的大小的总和。

命令

使用 du 命令就可以统计一个目录下所有目录所占用的真正的磁盘大小。

du [options] [directorys or files]

选项说明

  • -a:显示所有的子目录和子文件的磁盘总用量。
  • -h:使用友好的单位显示大小,如 KB、MB、G 等。
  • -s:不显示子目录的信息,只显示当前查询的目录的磁盘总用量。
  • 不加选项时:显示所有子目录的磁盘使用量。相比于 -a 少了子文件的信息。

例如

不加选项时

image-20210209155354669

image-20210209155418798

使用-a

image-20210209155603894

包括了子文件。

使用-s

image-20210209155650693

2021-02-09    
网易免费企业邮箱的SMTP POP服务地址和端口

​## 前言

为了实现网站的邮件发送业务,我查找了自己搭建邮件服务器的一些资料,发现这是很困难很不现实的。不仅消耗精力,更是违反了相关法律规定。于是我申请了网易免费企业邮箱,传送门。最多支持 50 的用户,非常够用了。但是,我在配置第三方客户端时遇到了困难,主要是 smtp 服务的地址和端口并不是那么的清楚,官方的资料上也是错误的信息。最终还是被我试了出来。

注意!这是网易免费企业邮箱的 smtp 和 pop 地址,付费的请参考官方资料。

服务地址和端口

服务名称地址端口
SMTPsmtp.ym.163.com25\465(SSL 加密)
POPpop.ym.163.com110\995

2021-02-03    
Ubuntu Linux下禁止服务开机自启动

​## 前言

由于学习需要,电脑上安装了 MSSQL 和 MySQL。目前课程已经结束,暂时用不到数据库了。但是他们还是会在开机自启,而且占用的内存还不少,尤其是 MSSQL。所以就查了一下怎么禁止他们开机自启。

使用 Systemctl 管理工具

systemctl is-enabled servicename.service #查询服务是否开机启动
systemctl enable *.service #开机运行服务
systemctl disable *.service #取消开机运行
systemctl start *.service #启动服务
systemctl stop *.service #停止服务
systemctl restart *.service #重启服务
systemctl reload *.service #重新加载服务配置文件
systemctl status *.service #查询服务运行状态

我们要使用的就是 systemctl disable mssql-server.service systemctl disable mysql.service ,输入 root 密码即可关闭服务自启!

2020-12-29    
ModuleNotFoundError: No module named 'apt_pkg' on Ubuntu

环境

  • Ubuntu 18.04
  • python 3.9

问题描述

手动更新了 python 版本到 3.9,原本的是 3.6 版本的。更换了默认的 python 版本之后,就会出现这样的错误。百度了一下,应该是因为包管理的版本还没有改过来,所以冲突了。解决方法就是更换一下软连接的链接文件。

解决方法

cd /usr/lib/python3/dist-packages/
sudo cp apt_pkg.cpython-36m-x86_64-linux-gnu.so apt_pkg.cpython-39m-x86_64-linux-gnu.so #修改成自己的版本
sudo ln -s apt_pkg.cpython-39m-x86_64-linux-gnu.so apt_pkg.so  #修改成自己的版本

成功解决!一些方法根本就不可用,这个软连接应该才是关键。

参考链接

https://stackoverflow.com/questions/13708180/python-dev-installation-error-importerror-no-module-named-apt-pkg

2020-12-07    
Elementaryos键盘设置从系统设置面板中消失

问题描述

本人正在使用 Elementary OS 5.1.7 Hera,某天突然想设置自定义快捷键,但是却发现键盘设置已经从系统设置面板中消失了,这叫人如何是好。于是就一阵百度,百度了个寂寞。国内用 Linux 的本来就少,用 Elementary OS 就可想而知,当然是少得可怜。所以关于这方面的资料基本都是一些老旧的东西,找不到解决问题的办法。最后还是我蹩脚的英语和谷歌拯救了我。

环境

  • Elementary OS 5.1.7 Hera

解决办法

安装 switchboard-plug-keyboardwingpanel-indicator-keyboard这两个包即可!

sudo apt install switchboard-plug-keyboard
sudo apt install wingpanel-indicator-keyboard

参考来源

https://elementaryos.stackexchange.com/questions/24711/keyboard-configuration-missing-from-system-settings

2020-12-06    
ERROR: Command errored out with exit status 1: when pip install scrapy 在Windows10上使用pip安装Scrapy时报错

描述

环境:

  • windows10 LTSC 1809
  • python 3.9 64bit
  • pip version :20.2.4

动作:

  • pip install scrapy

错误信息:

Running setup.py install for Twisted … error

ERROR: Command errored out with exit status 1:

010a120e61966fbb68.png

查阅资料

经过谷歌之后,发现有许多人出现了这个错误。一种是缺少 Visual C++14 Tool,另一个问题就是缺少 Scrapy 的依赖包 **Twisted** 。所以,经过实践,只是安装 Visual C++14 Tool 还不行,还需要手动下载 Twisted 进行安装之后,再执行 pip install scrapy

参考链接:Error when install scrapy in window by using pip install scrapy · Issue #2881 · scrapy/scrapy · GitHub在 python 3.8.1 上面安装 scrapy(报错显示说没有相关 twisted 文件/scrapy 安装失败)_qq_43738233 的博客-CSDN 博客

2020-11-08    
Python语言程序设计基础(第二版)嵩天高等教育出版社第三章答案

3.1

step = 0.5
year = 10
weight = eval(input("请输入你在地球上的重量(KG):"))

weight_in_earth = weight+year*step
weght_in_month = weight_in_earth*0.165
print("十年后,你的体重为:\n地球上:{:.2f}\n月球上:{:.2f}".format(weight_in_earth, weght_in_month))

3.2

# 连续学习的天数
x = 0
# 天数
day = 0
# 初始能力值
base = 1
# 周期
cycle = 7

for day in range(365):
    if 0 <= x < 3:
        x += 1
    elif 3 <= x < cycle:
        x += 1
        base *= (0.01+1)
    elif x == 7:
        x = 0
print("连续学习365天后,能力值为{:.2}".format(base))

3.3

2020-10-25