经验
文章平均质量分 58
牧羊女说
有马甲线的女程序猿、攻城狮、加班狗~
展开
-
RuntimeError: espeak not installed on your system
解决Python程序报错:espeak not installed on your system原创 2024-04-03 14:10:22 · 806 阅读 · 0 评论 -
dlopen “libnvcuvid.so“ failed!
dlopen "libnvcuvid.so" failed! 的解决方法原创 2023-09-02 15:42:20 · 616 阅读 · 0 评论 -
Windows11系统安装CUDA和CuDNN
Windows11系统上的CUDA和CuDNN环境配置。原创 2023-08-23 16:19:37 · 1605 阅读 · 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 · 1924 阅读 · 9 评论 -
C4996 ‘localtime‘: This function or variable may be unsafe.
解决C4996 localtime错误的方法。原创 2022-10-21 12:02:23 · 3648 阅读 · 0 评论 -
Ubuntu设置locale
Ubuntu设置locale的方法原创 2022-10-10 16:32:39 · 7045 阅读 · 0 评论 -
在Ubuntu上安装LibRaw
在Utuntu上通过源码安装LibRaw时出现的问题及解决方法。原创 2022-08-23 17:12:55 · 1362 阅读 · 2 评论 -
RuntimeError: no valid convolution algorithms available in CuDNN
使用PyTorch遇到的问题及解决方法。原创 2022-07-01 19:35:53 · 5690 阅读 · 5 评论 -
Ubuntu从Kaggle上下载数据集出现403 - Forbidden
在Ubuntu系统中,使用Docker容器运行Unet工程。从Kaggle上下载数据集“Carvana Image Masking Challenge”时出现了一些曲折,在此记录一下以作后续经验查阅。1. 401 - Unauthorized执行脚本下载数据集,脚本内容如下:#!/bin/bashif [[ ! -f ~/.kaggle/kaggle.json ]]; then echo -n "Kaggle username: " read USERNAME echo e原创 2022-04-15 11:43:49 · 3430 阅读 · 2 评论 -
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 · 10218 阅读 · 2 评论 -
VMWare创建CentOS8虚拟机后无法上网问题
最近用VMWare创建了两个虚拟机,个人比较熟悉Ubuntu系统,第一个用Ubuntu18.04,创建过程较简单,创建完成后通过NAT方式可以访问外网,无需再做过多配置。第二个由于工作需要,安装的是CentOS8系统,同样使用的是NAT的网络连接方式,然而安装完系统后发现上不了网。通过VMWare界面的“编辑”—>“虚拟网络编辑器”查看配置,发现默认配置是正确的,无需修改。网上搜解决方法,发现了原因:CentOS默认不启动网卡,需要手动启动。具体方法是:到如下目录,可以看到网卡配置文.原创 2021-09-17 12:59:44 · 686 阅读 · 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 评论 -
docker服务启动失败的解决方法
一台配置好的服务器,发到客户处突然业务系统不工作了,一查发现显卡驱动挂了,于是处理了显卡驱动,好了之后,docker服务居然也起不来!提示信息:Job for docker.service failed because the control process exited with error code.See "systemctl status docker.service" and "journalctl -xe" for details.查看服务状态如下:看网上的解决方法也是五原创 2020-12-09 14:52:10 · 6372 阅读 · 4 评论 -
类继承中的缺省参数值
写这篇是因为发现了类继承中一个有趣的现象。我们都知道,C++类中的virtual函数是动态绑定的,那么virtual函数的缺省参数呢?想必大家对动态绑定和静态绑定都不陌生了吧?简单来说,动态绑定就是运行期决定执行的函数(或行为),静态绑定则是编译期确定的,或者声明时确定的。virtual函数是动态绑定的,而缺省参数却是静态绑定。为了说明这个问题,先看一个再简单不过的例子:#include <iostream>using namespace std;class Base{原创 2020-11-16 21:12:05 · 489 阅读 · 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 · 13444 阅读 · 13 评论 -
程序运行时出现“error while loading shared libraries”
重装Linux系统后,运行一个可执行文件时出现“error while loading shared libraries”,提示找不到某个库的路径。开发过程中经常遇到这种问题,于是也就见怪不怪了。老办法,把程序依赖库的路径加入到/etc/ld.so.conf文件中,执行ldconfig搞定。那么/etc/ld.so.conf文件是啥东东呢?我们看一下它的内容:在加入库路径之前,它只包含了最上面一行“include /etc/ld.so.conf.d/*.conf”,我们把程序依赖库的路径逐行原创 2020-06-17 15:41:08 · 3289 阅读 · 0 评论 -
程序运行时出现symbol loopup error
半年没使用的一个软件,再次运行时出现找不到符号的问题:symbol lookup error: /usr/lib/x86_64-linux-gnu/libGL.so.1: undefined symbol: __GLXGL_CORE_FUNCTIONS使用find命令在/usr/lib/x86_64-linux-gnu下找到了libGL.so.1这个动态库文件,通过nm命令查看该库文件中的符号__GLXGL_CORE_FUNCTIONS:nmlibGL.so.1 | grep '__GLXGL.原创 2020-05-22 10:54:44 · 1626 阅读 · 1 评论 -
如何在类中定义线程函数
在类里面定义了几个线程函数,用以访问类成员,编译的时候遇到了“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 评论 -
.cc与.cpp源文件混合编译
工程中包含了两个子目录,include和source,分别存放了头文件和源文件,头文件和源文件都包含多种类型,头文件包含了.h和.hpp,源文件包含了.cc和.cpp。在这种情况下,Makefile应该怎么组织呢?|——————/include/ .h .hpp||——————/source/ .cc .cpp||——————Makefile我使用了比较笨的方法,将.cc和.cpp...原创 2020-03-24 20:06:02 · 1249 阅读 · 0 评论 -
使用Makefile编译带源码路径的工程
昨天编译一个工程,Makefile放在工程目录,.cpp文件放在/source目录下,头文件.h放在/include目录下。遇到了几个问题,一番修改,终于改好,整理如下:出问题的Makefile如下:INC = -I./includeCFLAGS := -O0 -g $(INC)SOURCE = $(wildcard ./source/*.cpp)CPPFILES = $(not...原创 2020-03-24 14:13:12 · 1643 阅读 · 0 评论 -
轮廓相减的两种实现方法
在优化工程代码效率。从一系列轮廓合集中减去其中的一个轮廓分量,之前都是通过二值图像相减的方式,即把总轮廓绘制在一副图像上Img_1,再把要减去的分量绘制在另一幅图像Img_2上,然后通过图像相减得到差值图像Img_3,再从Img3中找出相减后的结果。今天突然灵机一动,发现这么减来减去简直太浪费资源了,明明一副图像就能搞定呀!只要在一副图像上绘制总轮廓,然后用背景像素绘制要减去的轮廓不就OK了?傻呵...原创 2020-03-13 16:57:19 · 1073 阅读 · 0 评论 -
在软件版本号中插入编译时间和日期
手动维护软件版本号和发布时间是一件比较麻烦的事情,尤其是当大版本不变,但子版本迭代频繁的时候,常常忘记更新发布时间,导致版本管理混乱。因此,最方便的方法就是自动嵌入版本编译时间。标准C中定义了一些预定义宏,以双下划线“__”开头和结尾,中间字母全部大写。如下几种预定义宏是C中常用的几个:__FILE__ 当前源代码文件名__LINE__ 当前源代码行号__DATE...原创 2019-12-02 18:14:42 · 1685 阅读 · 1 评论 -
pkg-config的作用和用法
以前不习惯用pkg-config,喜欢在Makefile中指定程序的依赖项。但是这样做存在一个问题,即当你的机器上安装了同一名称但不同版本的依赖库时,就有可能导致链接失败。这时,pkg-config就显示了它的优势:使编译选项简洁明了。那么pkg-config是干啥的呢?按照官方说法,它用来返回已安装库的基本信息。pkg-config的参数有如下一堆,想获得更全的参数及用法,可以通过执行“...原创 2019-10-31 19:03:47 · 15645 阅读 · 1 评论 -
Windows下使用FFMPEG的一个BUG
今天用Windows下的FFMPEG解码一个视频并保存成一系列图片,使用过程中遇到了问题, 目前无解,请看到的高手给些指点,不胜感谢!先来描述一下操作步骤:从https://ffmpeg.zeranoe.com/builds/下载相应的FFMPEG 版本至本地,我的是几个月前下载的,因此版本略老了些。进入ffmpeg-3.3.4-win64-shared\bin为了方便写命令行,把输入原创 2018-01-12 15:03:55 · 797 阅读 · 1 评论 -
在Linux系统中安装nginx
最近要在Linux系统中实现推流和解码,需要安装nginx,研究了一天,终于安装成功了,记录一下。因为不通外网,所以我是直接下载源码,然后上传到服务器上,再配置并安装的。步骤如下:1. 安装OpenSSLOpenSSL是什么东东?下面是来自百度百科的一个定义:OpenSSL 是一个安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的...原创 2018-03-01 15:08:39 · 362 阅读 · 0 评论 -
记一次Windows向Linux的代码移植
前几天完成了一次Windows向Linux的代码移植,由于在Windows上开发时没有考虑到兼容性,所以移植的时候还是碰到了不少的问题,今天专门抽时间把问题和解决方法整理出来,作为经验,以备将来查阅。1. 包含的头文件名称大小写问题例如decode_test_utils.cpp:1:20: fatal error: StdAfx.h: No such file or directory #inc...原创 2018-03-24 16:49:18 · 2880 阅读 · 0 评论 -
记一次编码工程移植到新机器上出现的Core Dump问题
记录一个开发某个机器视觉工程中出现的问题,工程略微复杂,依赖项很多,主要有:相机库、Caffe、TensorRT、OpenCV、FFMPEG等。其中需要用到视频编码功能,因此,自己基于FFMPEG和X264写了一个编码接口,生成动态库文件libvideoenc.so并在工程中调用。出现的问题是,工程在A服务器上跑得好好的,移植到B服务器上却怎么都Run不起来,一跑录制功能就崩溃,类似这样的:...原创 2018-10-11 11:38:28 · 522 阅读 · 0 评论 -
在CentOS系统上安装OpenCV-3
前几天在一台CentOS系统上安装带解码功能的OpenCV,过程略曲折,特此记录安装过程中遇到的一些问题和解决方法,以备后续查阅。一. 安装必要的依赖库因为需要使用OpenCV的解码功能,需要安装FFMPEG,FFMPEG安装过程见我之前的一篇博文:安装带X264的ffmpeg但是跟之前有些不一样的地方,就是需要打开libdc1394,因此在FFMPEG配置中需要加入--enab...原创 2019-04-26 16:45:09 · 1038 阅读 · 0 评论 -
tar打包和解包
tar这个命令用了上百次,每次用之前都需要再确认一遍。虽然是很简单的命令,但是对于一个每天要想很多事情的老年人来说,要精准记住每个参数还真不是件容易的事,索性写下来,下次打开博文照做就好了,呵呵~打包:tar zcvf file.tar.gz file1 file2 file2tar jcvf file.tar.bz2 file1 file2 file3解包:tar zxvf...原创 2019-04-26 17:49:21 · 2581 阅读 · 2 评论 -
Linux系统下创建svn仓库
创建了不少仓库了,但每次创建新的项目时,仍然要翻笔记翻攻略,感觉大脑已经退化(进化)到不适合记忆简单的命令了,哈哈。所以索性自己把步骤记录下来,用到的时候直接瞄一眼好了~登入svn服务器,进入svn目录,我的是/srv/svn,该目录下有之前创建的所有项目。1. 创建仓库sudo svnadmin create test_svn执行成功后,会发现当前目录下出现了test_svn这样...原创 2019-09-09 20:51:44 · 642 阅读 · 0 评论 -
extern "C" 浅析
用C++写了一个音视频解码器,调用了FFMPEG的动态链接库,并在代码里面包含了FFMPEG的头文件,如下:#include "libswresample/swresample.h"#include "libavutil/mem.h"#include "libavutil/frame.h"#include "libavutil/channel_layout.h"修复了所有的编译语法错原创 2017-10-21 15:56:22 · 441 阅读 · 2 评论