CentOS7 安装OpenCV3.4.3 - Go语言中文社区

CentOS7 安装OpenCV3.4.3


前期准备

添加源并下载安装依赖库

sudo rpm -import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
sudo rpm –import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro 
sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm 
sudo yum install epel-release gcc gcc-c++ cmake python-devel numpy gtk2-devel libdc1394-devel libv4l-devel gstreamer-plugins-base-devel
yum install -y vim epel-release
yum repolist
yum install -y ffmpeg
yum install ffmpeg-devel

下载并安装OpenCV

OpenCV官网:https://opencv.org/releases.html
在Linux中,可以直接下载

wget https://github.com/opencv/opencv/archive/3.4.4.zip

下载解压,并进入文件夹
注意安装位置,样例写的path/to /install,根据自己路径设置。不指定安装位置时,默认安装路径在 /usr/local/

mkdir release
mkdir install
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=path/to /install -D BUILD_TESTS=OFF ..
make
sudo make install

不出现错误即为安装成功

配置OpenCV

添加库路径:

执行下面命令

vi /etc/ld.so.conf.d/opencv.conf
ldconfig

一般这个文件是自己创建的,里面加入 安装OpenCV的lib库文件,如:/usr/local/lib

添加环境变量

在用户根目录下,找到.bashrc文件。

vi ~/.bashrc

在文件尾加入:

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

note:添加的路径要注意,根据自己的路径

编译错误

一般情况下,按照上述方法在编译有关OpenCV的C/C++程序时,不会出现错误。
但是想把编译好的OpenCV拿出来单独使用,在另一台干净机器调用OpenCV库时,会出现:
在这里插入图片描述
解决方案:
1、这表示找不到库文件
libxxx.so,其中 xxx 是库文件的名字。
使用以下命令查询gcc能否搜寻到指定的库文件,将库文件所在的路径加入到 /etc/ld.so.conf 尾部,并使之生效:
$ gcc -lxxx --verbose $ sudo echo 'xxx/lib/' >> /etc/ld.so.conf $ sudo ldconfig
修改环境变量 LD_LIBRARY_PATH,加入库文件所在路径。使用 export 命令使修改生效。
$ echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH: xxx/lib/' >> ~/.bashrc $ source ~/.bashrc

2、1)确认库文件是否存在,比如-lopencv_core, 在/usr/lib, /usr/local/lib,或者其他自定义的lib下有无libopencv_core.so, 如果只是存在libopencv_core.so.3.4.3,那么可以通过ln -sv libopencv_core.so.3.4 libopencv_core.so
2)检查/etc/ld.so.conf中的库文件路径是否正确,如果库文件不是使用系统路径,/usr/lib, /usr/local/lib, 那么必须在文件中加入。
3. 究极方案:
如果上面两种方法没有解决,将在编译生成库文件的so文件,复制两份,并重新命名,如果上面两种方法没有解决,将在编译生成库文件的so文件,复制两份,并重新命名,
例子:libopencv_core.so.3.4.3例子:libopencv_core.so.3.4.3 复制两份,并命名:libopencv_core.so.3.4 libopencv_core.so

每日一码

输出前N个数中所有的自幂数

// #include<stdio.h>
#include<iostream>
#include<stdlib.h>
#include<math.h>
#include<time.h>
#include<sys/time.h>
using namespace std;

bool Narcisst(long double number,int count){
	long double num = number;
	long double result = 0;
	int tmp;
	for(int d_i = 0; d_i < count; d_i++){
		tmp = (int)num % 10;
		num = num/10;
		result = result + pow(tmp,count);
	}
	if(result == number) 
	{
		cout<<result<<" ";
		return true;
	}
	
	return false;
}

int main(int argc, char** argv){
	if(argc == 1){
		cout<<"./exec.bin number(3<= N <= 10)"<<endl;
		return -1;
	}
	long double stop = atoi(argv[1]);
	
	int bit = -1;
	long double tmp = stop;
	while(tmp != 0){
		bit++;
		tmp = (int)tmp/10;
	}
	long t1,t2;
	t1 = time(NULL);
	int NarcisstCount=0;
	int bit_i = 0;
	long double start1,stop1;
	long double i = 0;
	while(i <= stop){
		if(bit_i == 0) 
			start1 = 0;
		else 
			start1 = pow(10,bit_i);
		stop1 = pow(10,bit_i+1);
		
		// cout<<start1<<" "<<stop1<<endl;
		
		while(start1 <= i && stop1 >= i){
			if(Narcisst(i, bit_i+1)) NarcisstCount++;
			i++;
		}
		i = pow(10,bit_i+1) + 1;
		bit_i++;
	}
	t2 = time(NULL);
	cout<<"The total Narcisst Count is "<<NarcisstCount<<endl;
	cout<<"The total Time is "<<t2-t1<<" s."<<endl;
	return 0;
}
版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_43470000/article/details/84962432
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢