社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
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官网: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
不出现错误即为安装成功
执行下面命令
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;
}
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!