Linux
文章平均质量分 60
牧羊女说
有马甲线的女程序猿、攻城狮、加班狗~
展开
-
在Ubuntu上安装Anaconda之后,启动失败
出现以下错误地解决方法:conda: error: argument COMMAND: invalid choice: 'activate' (choose from 'clean', 'compare',原创 2024-05-09 21:20:45 · 507 阅读 · 0 评论 -
libgomp-d22c30c5.so.1.0.0:cannot allocate memory in static TLS block
libgomp-d22c30c5.so.1.0.0:cannot allocate memory in static TLS block 问题的处理及遗留。原创 2023-02-23 18:53:55 · 1916 阅读 · 9 评论 -
Ubuntu系统为程序创建桌面快捷方式
Ubuntu为程序创建桌面快捷方式的方法原创 2023-02-15 10:43:03 · 2951 阅读 · 0 评论 -
Ubuntu20安装onnx遇到的几个问题及解决方法
在Ubuntu上用Docker容器安装一个目标检测算法的运行环境,过程中出了几个小问题,记录一下。工程的requirements.txt如下:numpytorch>=1.7opencv_pythonloguruscikit-imagetqdmtorchvisionPillowthopninjatabulatetensorboard# verified versions# pycocotools corresponds to https://github.com/p原创 2022-03-23 11:27:45 · 10205 阅读 · 2 评论 -
CentOS 8.4离线安装Docker
用的CentOS 8.4的虚拟机,模拟的服务器环境,无法连接外网,只能离线安装软件。首先通过外网机下载Docker安装包,下载地址:Index of linux/static/stable/x86_64/https://download.docker.com/linux/static/stable/x86_64/大家可以根据自己的需要下载相应的版本,我下载的是20.10.8。解压文件包:tar zxvf docker-20.10.8.tgz得到docker文件夹,进入到该文件夹,可以看原创 2021-09-18 12:52:13 · 975 阅读 · 2 评论 -
VMWare创建CentOS8虚拟机后无法上网问题
最近用VMWare创建了两个虚拟机,个人比较熟悉Ubuntu系统,第一个用Ubuntu18.04,创建过程较简单,创建完成后通过NAT方式可以访问外网,无需再做过多配置。第二个由于工作需要,安装的是CentOS8系统,同样使用的是NAT的网络连接方式,然而安装完系统后发现上不了网。通过VMWare界面的“编辑”—>“虚拟网络编辑器”查看配置,发现默认配置是正确的,无需修改。网上搜解决方法,发现了原因:CentOS默认不启动网卡,需要手动启动。具体方法是:到如下目录,可以看到网卡配置文.原创 2021-09-17 12:59:44 · 684 阅读 · 0 评论 -
CUDA Error: no kernel image is available for execution on device
场景再现:搭建了一台基于NVIDIA GeForce 1080Ti的算法服务器,使用的cuda11.1的docker镜像,显卡驱动:NVIDIA-Linux-x86_64-455.38.run,容器起来后,运行程序时出现题目中的错误:第一反应是,是不是cuda和驱动该版本太高了?因为这套环境原本是在GeForce RTX 3080机器上运行的。所以在第一时间把显卡驱动降到了NVIDIA-Linux-x86_64-440.44.run,cuda版本降到了10.2,并且重新编译了应用程序,但是这个问题仍原创 2021-07-07 18:33:45 · 1357 阅读 · 0 评论 -
在Docker容器中安装CppCMS
CppCMS是一个基于C++语言的高性能web开发框架,旨在处理极高负荷的web应用。更多介绍可参考:http://cppcms.com/wikipp/en/page/main在一个Docker基础镜像中编译CppCMS,踩了一点点小坑,记录下来,以备后来查阅。下载cppcms源码,下载地址:https://sourceforge.net/projects/cppcms/files/latest/download我用的版本是cppcms-1.2.1,源码包放在Linux服务器自己的目录下(比如/原创 2021-01-15 10:31:14 · 279 阅读 · 2 评论 -
ubuntu18.04安装nvidia-docker2
最近装了N多套docker环境,把安装步骤整理出来,以后直接拿来用。docker创建容器的流程,正常情况下是这样的:docker --> dockerd --> containerd--> containerd-shim -->runc --> container-process但如果要使用NVIDIA GPU,则需要用到nvidia-docker,那么创建容器的流程则变成下面这样:docker--> dockerd --> containerd原创 2020-12-18 20:06:05 · 491 阅读 · 0 评论 -
java.lang.UnsatisfiedLinkError: Error looking up function 错误处理
写了份C++视频流录制接口给Java调用,结果出现了运行期报错:“java.lang.UnsatisfiedLinkError: Error looking up function”。跟Java的同事分析,确定原因是JNA无法读取到库文件中的正确函数名。例如,我提供的头文件如下:#ifndef __RECORDER_API_H__#define __RECORDER_API_H__#include <iostream>#include <cstring>#includ原创 2020-11-04 18:14:15 · 13439 阅读 · 13 评论 -
Nginx配置文件解析
忙里偷闲,研究了一下Nginx的配置文件用法。Nginx的安装和在流媒体代理上的应用,前面已经写过,这里略过,有兴趣的朋友可以参考之前的文章:在Ubuntu上安装Nginx with nginx-http-flv-moduleNginx + Nginx-http-flv-module + FFMPEG实现直播和点播Nginx默认的配置文件为/usr/local/nginx/conf/nginx.conf,配置文件主要包括全局、event、http、server设置,其中,event用来定义Ngi原创 2020-09-17 17:54:29 · 438 阅读 · 0 评论 -
Nginx + Nginx-http-flv-module + FFMPEG实现直播和点播
上一篇讲了如何在Linux系统上安装Nginx:安装Nginx + nginx-http-flv-module。本篇记录一下如何用Nginx + nginx-http-flv-module实现直播和点播功能。要实现直播和点播,首先需要正确配置Nginx,进入Nginx配置文件路径:/usr/local/nginx/conf (如果安装自定义路径的话,请进入自己的实际安装路径),可以看到有以下这些文件:我们需要编辑的是nginx.conf。1. nginx.conf的配置我目前支持http原创 2020-09-09 17:35:04 · 2665 阅读 · 2 评论 -
如何在类中定义线程函数
在类里面定义了几个线程函数,用以访问类成员,编译的时候遇到了“error: invalid use of non-static member function”。测试代码如下:#include <iostream>#include <pthread.h>#include <unistd.h>class MyClass{public: MyCl...原创 2020-03-27 20:05:53 · 1263 阅读 · 0 评论 -
编译带x264的FFMPEG
业务需要,需要在Linux系统下编译带x264编码的ffmpeg工程,略踩小坑,过程记录如下。首先下载源码,ffmpeg: http://www.ffmpeg.org/download.htmlx264:http://download.videolan.org/x264/snapshots/yasm:http://yasm.tortall.net/Download.html1. 编译yasmyas...原创 2018-05-26 17:52:14 · 5899 阅读 · 8 评论 -
Linux下用C++实现通过进程名称获取进程ID
近期开发的系统功能涉及到进程之间的查询、进程对进程的启停操作。在shell环境下,使用进程名称查询进程ID非常简单,例如通过 ps -ef | grep "proc_name"来查看名为“proc_name”进程,也可以通过pidof "proc_name"来获取进程ID。例如:mvg@ubuntu-MS-7A54:~/test$ ps -ef | grep chip_det_m...原创 2018-08-01 18:03:38 · 6873 阅读 · 0 评论 -
记一次编码工程移植到新机器上出现的Core Dump问题
记录一个开发某个机器视觉工程中出现的问题,工程略微复杂,依赖项很多,主要有:相机库、Caffe、TensorRT、OpenCV、FFMPEG等。其中需要用到视频编码功能,因此,自己基于FFMPEG和X264写了一个编码接口,生成动态库文件libvideoenc.so并在工程中调用。出现的问题是,工程在A服务器上跑得好好的,移植到B服务器上却怎么都Run不起来,一跑录制功能就崩溃,类似这样的:...原创 2018-10-11 11:38:28 · 520 阅读 · 0 评论 -
在CentOS系统上安装OpenCV-3
前几天在一台CentOS系统上安装带解码功能的OpenCV,过程略曲折,特此记录安装过程中遇到的一些问题和解决方法,以备后续查阅。一. 安装必要的依赖库因为需要使用OpenCV的解码功能,需要安装FFMPEG,FFMPEG安装过程见我之前的一篇博文:安装带X264的ffmpeg但是跟之前有些不一样的地方,就是需要打开libdc1394,因此在FFMPEG配置中需要加入--enab...原创 2019-04-26 16:45:09 · 1037 阅读 · 0 评论 -
线程连接
线程可分为两种,一种是可连接的(joinable),另一种是不可连接的(unjoinable),也就是分离的(detached)。在Linux下,通过pthread_create()创建的线程默认是可连接的,当线程退出时,系统不会去释放该线程的资源。这时,需要pthread_join()去获取该线程的状态,并释放其占用的资源。如果一个可连接的线程在退出后不被连接,将会产生僵尸线程(zombie...原创 2019-07-11 11:59:36 · 1113 阅读 · 2 评论 -
线程同步之读写锁rwlock
前面文章介绍了使用互斥量来实现多个线程对同一共享资源的互斥访问,也就是说同时只有一个线程可以操作该共享资源。那么有一种特殊情况,当一个进程中,对共享资源的访问读多写少时,则可以考虑使用读写锁rwlock。读写锁只允许一个线程对共享变量进行写操作,但允许多个线程对该共享变量同时进行读操作,也就是说,当读写锁处于写加锁状态时,任何其他线程对该共享变量的读写操作请求都会被阻塞; 当读写锁处于读...原创 2019-07-16 20:18:57 · 379 阅读 · 0 评论 -
线程同步之信号量Semaphore
信号量是内核对象,它允许多个线程在同一个时刻访问同一个共享资源,但是需要限制在同一时刻访问此共享资源的最大线程数量。在创建信号量时,要指定允许的最大资源计数和当前可用的资源数。一般将当前可用资源数设置为最大资源数,每增加一个线程对共享资源的访问,当前可用资源数减1。当可用资源计数减小到0时,则说明当前占用资源的线程数达到了所允许的最大数目,其他线程无法再进入,必须等待(阻塞)。占用资源的线程在处理...原创 2019-07-17 15:20:07 · 497 阅读 · 1 评论 -
VMware安装CentOS遇到Intel VT-x被禁用问题的解决方法
记录在PC端VMware虚拟机中安装CentOS 64位操作系统时出现的”Intel VT-x被禁用“问题及其解决步骤。原创 2017-09-22 10:49:08 · 3229 阅读 · 0 评论