作者归档

小精灵

小精灵

YY

某某新华书店

新华书店

YY

Linux下如何创建和取消软连接 soft link

建立软连接:

ln -s /usr/nodejs/bin/npm /usr/local/bin/ 
ln -s /usr/nodejs/bin/node /usr/local/bin/ 

删除软连接:

rm -rf /usr/local/bin/node

查应用程序路径

which vim

YY

被温暖了一下

又不见了

YY

VS Code中Import [module] could not be resolved Pylance(reportMissingImports)解决方案

在VS Code中编写python文件时,import自定义module报错 “could not be resolved Pylance(reportMissingImports)”。

这是因为Pylance未找到自定义模块的地址,可以通过在settings.json文件中添加extraPaths来解决:

1.通过Shift+Ctrl+P打开设置栏,输入settings后找到Perference: Open Settings (JSON)

2.打开settings.json文件后添加下面的代码进去:

"python.analysis.extraPaths": [
    "./src",        // 自定义模块的相对路径,可多个,可绝对路径  
    "./modules"
]
3.使用Ctrl+S保存后,重新打开.py文件,这时自定义的模块就被Pylance找到并导入成功了。

方法二:

我认为造成这个问题的原因是在另一个新的路径上新建了一个python项目,但是在vscode中未切换到对应路径的解释器,所以选择当前路径的接收器即可解决该问题: 用Ctrl+Shift+P(Command+shift+p)命令打开命令面板,然后输入Python: Select Interpreter选择当前路径的解释器。需要知道的是,选择解释器就是选择环境,解释器所调用的包是在Lib\site-packages这个文件夹下的。

经测试,两种方法均可以。

YY

Ubuntu 20.04 下编译 PulseAudio

1 前言
2 下载编译
具体构建过程参照官方文档:https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/Developer/PulseAudioFromGit/

2.1 下载代码
git clone git://anongit.freedesktop.org/pulseaudio/pulseaudio

2.2 编译
编译过程遇到太多错误了,见问题集,主要是依赖没有安装

meson build
ninja -C build
sudo ninja -C build install
sudo ldconfig

3 demo实践
PulseAudio对外api非常简单,基本就是和io操作一样:read,write,open…
pa_simple_new:创建到服务器的新连接。
pa_simple_read:从服务器读取一些数据。(阻塞)
pa_simple_write:向服务器写入一些数据。
pa_simple_free:关闭并释放与服务器的连接。
pa_simple_drain:等待守护进程播放所有已写入的数据。
pa_simple_flush:刷新播放或记录缓冲区。
pa_simple_get_latency:返回播放或记录延迟。
下面是官方demo:

/***
This file is part of PulseAudio.

PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version.

PulseAudio is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.

You should have received a copy of the GNU Lesser General Public License
along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
***/

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <errno.h>
#include <fcntl.h>

#include <pulse/simple.h>
#include <pulse/error.h>

#define BUFSIZE 1024

int main(int argc, char*argv[]) {

/* The Sample format to use */
static const pa_sample_spec ss = {
.format = PA_SAMPLE_S16LE,
.rate = 44100,
.channels = 2
};

pa_simple *s = NULL;
int ret = 1;
int error;

/* replace STDIN with the specified file if needed */
if (argc > 1) {
int fd;

if ((fd = open(argv[1], O_RDONLY)) < 0) {
fprintf(stderr, __FILE__”: open() failed: %s\n”, strerror(errno));
goto finish;
}

if (dup2(fd, STDIN_FILENO) < 0) {
fprintf(stderr, __FILE__”: dup2() failed: %s\n”, strerror(errno));
goto finish;
}

close(fd);
}

/* Create a new playback stream */
if (!(s = pa_simple_new(NULL, argv[0], PA_STREAM_PLAYBACK, NULL, “playback”, &ss, NULL, NULL, &error))) {
fprintf(stderr, __FILE__”: pa_simple_new() failed: %s\n”, pa_strerror(error));
goto finish;
}

for (;;) {
uint8_t buf[BUFSIZE];
ssize_t r;

#if 0
pa_usec_t latency;

if ((latency = pa_simple_get_latency(s, &error)) == (pa_usec_t) -1) {
fprintf(stderr, __FILE__”: pa_simple_get_latency() failed: %s\n”, pa_strerror(error));
goto finish;
}

fprintf(stderr, “%0.0f usec \r”, (float)latency);
#endif

/* Read some data … */
if ((r = read(STDIN_FILENO, buf, sizeof(buf))) <= 0) {
if (r == 0) /* EOF */
break;

fprintf(stderr, __FILE__”: read() failed: %s\n”, strerror(errno));
goto finish;
}

/* … and play it */
if (pa_simple_write(s, buf, (size_t) r, &error) < 0) {
fprintf(stderr, __FILE__”: pa_simple_write() failed: %s\n”, pa_strerror(error));
goto finish;
}
}

/* Make sure that every single sample was played */
if (pa_simple_drain(s, &error) < 0) {
fprintf(stderr, __FILE__”: pa_simple_drain() failed: %s\n”, pa_strerror(error));
goto finish;
}

ret = 0;

finish:

if (s)
pa_simple_free(s);

return ret;
}

4 问题集
4.1 tdb库缺失
问题描述

meson.build:595:2: ERROR: Dependency “tdb” not found, tried pkgconfig and cmake

解决方案:
下载最新版本tdb编译安装。
下载地址:https://www.samba.org/ftp/tdb/

tar -xvf tdb-1.4.5.tar.gz
cd tdb-1.4.5
./configure && make && make install

4.2 sndfile库缺失
meson.build:653:0: ERROR: Dependency “sndfile” not found, tried pkgconfig and cmake

解决方案:
下载最新版本tdb编译安装。
下载地址:http://www.mega-nerd.com/libsndfile/

tar -xvf libsndfile-1.0.28.tar.gz
cd libsndfile-1.0.28
./configure && make && make install

4.3 xtst库缺失
meson.build:686:2: ERROR: Dependency “xtst” not found, tried pkgconfig and cmake

解决方案:

sudo apt-get install libxtst-dev

4.4 check库缺失
meson.build:792:0: ERROR: Dependency “check” not found, tried pkgconfig and cmake

解决方案:

apt-get install check
————————————————
版权声明:本文为CSDN博主「响箭零零一」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_38731735/article/details/120592052

YY

g_bGuestPoweroff.fastpipeapi. cpp:1153/1161解决方法

打开模拟器后,中间提示异常g_bGuestPowerofffastpipeapi.cpp:1153/1161的弹窗是代表着您的电脑里面存在跟模拟器冲突的虚拟机教程,如下图提示

以下教程步骤是手动关闭冲突的虚拟机的操作

1、按照下面图片的步骤打开控制面板,关闭系统自带的所有虚拟机服务,图片中框住的选项全部取消。

2、需要使用命令来彻底关闭

点击桌面左下角“开始菜单”,搜索“命令提示符”或“CMD”,以管理员权限运行。然后在弹出来的窗口内,用“Ctrl+V”黏贴以下代码并回车运行(代码:bcdedit /set hypervisorlaunchtype off),提示操作完成后,重启电脑即可。 教程如下;

3、其中 Windows 10 版本1809出现1153、1161,需要关闭内核隔离,教程如下;

桌面点击左下角“开始菜单”,搜索“Windows”找到“Windows Defender 安全中心”点击,进去之后再按照图片的顺序标识关闭“内核隔离”’

YY

好奇

好奇

YY

Started GNOME Display Manager.systemd-network,ally.e pop link was shut down

Ubuntu 20.04 在启动的时候,然后就停在 Started GNOME Display Manager.systemd-network,ally.e pop link was shut down. 卡着不启动了。

解决办法:

Ctrl+Alt+F3(或者 Ctrl+Alt+F1 这里的F*,如果进不去终端,可以试一下F2,F4,…)进入tty3:(进入终端)

输入:

sudo apt update
sudo apt dist-upgrade

更新完之后,重启reboot即可。

 

YY

Ubuntu 数独

安装后,只需按名称调用nudoku即可启动它,并且从那里应该很容易解释。 如果您以前从未玩过Sudoku,那就很简单:您需要确保组成大方块的每一行,每一列以及9个3×3方块中的每一个都有一个1-9的数字。

Fedora:sudo dnf install nudoku

Ubuntu:sudo apt install nudoku

 

 

YY