cmakelinux教程
你先确认下是否bin下真的有mysql文件,如果有,那么试试./mysql -u root或者协商mysql的绝对路径试试
也可以对mysql做一个链接, ln -s mysql的绝对路径 /usr/bin/,这样就可以再任何目录使用mysql命令了
② linux下cmake安装
我刚从坑里爬出来,别看网上乱七八糟的教程。
直接sudo apt install cmake就可!!!
如果报错就按报错解决,一般存在的问题就是apt更新一下就行,或者其他一些小问题。
③ 如何到载百度网议
不久之前,机器之心联合网络推出 PaddlePaddle 专栏,为想要学习这一平台的技术人员推荐相关教程与资源。在解析过PaddlePaddle框架之后,从这篇文章开始上手,安装 PaddlePaddle。
目录
环境
Windows 系统的安装
在 Windows 上安装 Docker 容器在 Windows 上安装 Ubuntu
使用 pip 安装
使用 Docker 安装
从源码编译生成安装包
在本地编译生成安装包在 Docker 编译生成安装包
编译 Docker 镜像
测试安装环境
最后提示
项目代码
参考资料
环境
系统:Ubuntu 16.0.4(64 位)处理器:Intel(R) Celeron(R) CPU内存:8G
Windows 系统的安装
PaddlePaddle 目前还不支持 Windows,如果读者直接在 Windows 上安装 PaddlePaddlePaddle 的话,就会提示没有找到该安装包。如果读者一定要在 Windows 上工作的话,笔者提供两个建议:一、在 Windows 系统上使用 Docker 容器,在 Docker 容器上安装带有 PaddlePaddle 的镜像;二、在 Windows 系统上安装虚拟机,再在虚拟机上安装 Ubuntu。
在 Windows 上安装 Docker 容器
首先下载 Docker 容器的工具包 DockerToolbox,笔者使用这个安装包不仅仅只有 Docker,它还包含了 VirtualBox 虚拟机,使用者工具包我们就不用单独去安装 VirtualBox 虚拟机了,DockerToolbox 的官网下载地址:https://docs.docker.com/toolbox/toolbox_install_windows/
下载之后,就可以直接安装了,双击安装包,开始安装
选择安装路径,笔者使用默认的安装路径
然后安装所依赖的软件,因为笔者之前在电脑上已经安装了 git,所以在这里就不安装了,其他都要勾选
这一步不用修改什么,让程序为我们创建一个桌面快捷键
最后就可以安装了,等待一小段时间即可
到这里就安装完成了
安装完成之后,如果直接启动 Docker 的话,有可能可能会卡在这里,因为还有下载一个 boot2docker.iso 镜像,网速比较慢的话就可能一直卡在这里。所以我们还要镜像下一步操作
Running pre-create checks...
(default) No default Boot2Docker ISO found locally, downloading the latest release...
(default) Latest release for github.com/boot2docker/boot2docker is v17.12.1-ce
(default) Downloading C:\Users\15696\.docker\machine\cache\boot2docker.iso from https://github.com/boot2docker/boot2docker/releases/download/v17.12.1-ce/boot2docker.iso...
在下载 DockerToolbox 的时候,这个工具就已经带有 boot2docker.iso 镜像了。并且存在 DockerToolbox 安装的路径上,笔者的路径是:
C:\Program Files\Docker Toolbox\boot2docker.iso
我们把这个镜像复制到用户目录\.docker\machine\cache\,如笔者的目录如下:
C:\Users\15696\.docker\machine\cache\
复制完成之后,双击桌面快捷方式 Docker Quickstart Terminal,启动 Docker,命令窗口会输出以下信息:
Running pre-create checks...
Creating machine...
(default) Copying C:\Users\15696\.docker\machine\cache\boot2docker.iso to C:\Users\15696\.docker\machine\machines\default\boot2docker.iso...
(default) Creating VirtualBox VM...
(default) Creating SSH key...
(default) Starting the VM...
(default) Check network to re-create if needed...
(default) Windows might ask for the permission to create a network adapter. Sometimes, such confirmation window is minimized in the taskbar.
(default) Found a new host-only adapter: "VirtualBox Host-Only Ethernet Adapter #3"
(default) Windows might ask for the permission to configure a network adapter. Sometimes, such confirmation window is minimized in the taskbar.
(default) Windows might ask for the permission to configure a dhcp server. Sometimes, such confirmation window is minimized in the taskbar.
(default) Waiting for an IP...
最后看到 Docker 的 logo 就表示成功安装 Docker 容器了
## .
## ## ## ==
## ## ## ## ## ===
/"""""""""""""""""\___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~
\______ o __/
\ \ __/
\____\_______/
docker is configured to use the default machine with IP 192.168.99.100
For help getting started, check out the docs at https://docs.docker.com
Start interactive shell
15696@ MINGW64 ~
$
到这就可以使用 Docker 来安装 PaddlePaddle 了,具体请看本文章中关于 Docker 使用 PaddlePaddle 部分
在 Windows 上安装 Ubuntu
在 Windows 上在 Ubuntu 就要先安装虚拟机,虚拟机有很多,笔者使用的是开源的 VirtualBox 虚拟机,VirtualBox 的官网:https://www.virtualbox.org/
安装完成 VirtualBox 虚拟机之后,进入到 VirtualBox 虚拟机中点击新建,创建一个系统
选择分配的内存,我这里只是分配了 2G,如果正式使用 PaddlePaddle 训练模型,这远远不够,读者可以根据需求分配内存
创建一个虚拟硬盘
选择默认的 VDI 硬盘文件类型
这里最好是选择动态分配硬盘,这样虚拟机会根据实际占用的空间大小使用电脑本身的磁盘大小,这样会减少电脑空间的占用率的。如果是固定大小,那么创建的虚拟机的虚拟硬盘一开始就是用户设置的大小了。
这里就是选择虚拟硬盘大小的,最后分配 20G 以上,笔者分配 30G,应该够用。
然后选择刚才创建的 Ubuntu 系统,点击设置,这系统中取消勾选软驱,然后点击存储,选择 Ubuntu 镜像,笔者使用的是 64 位 Ubuntu 16.04 桌面版的镜像
最后就可以启动安装 Ubuntu 了。选择我们创建的 Ubuntu 系统,点击启动,进入到开始安装界面,为了方便使用,笔者选择中文版的
为了安装之后不用在安装和更新应用,笔者勾选了安装 Ubuntu 时下载更新,这样在安装的时候就已经更新应用了
然后是选安装的硬盘,因为我们使用的自己创建的整一个硬盘,所以我们可以直接选择青春整个硬盘并安装 Ubuntu,这里就不用考虑分区和挂载问题了
选择所在的位置,这没什么要求的,笔者随便选择一个城市
然后是选择键盘的布局,通常的键盘布局都是英语(美国)
创建 Ubuntu 的用户名称和密码
最后就是安装了,这个安装过程可能有点久,耐心等待
安装完成之后就可以在 Windows 系统上使用 Ubuntu 系统了,我们再使用 Ubuntu 来学习和使用 PaddlePaddle 做深度学习了。最好安装完成之后,把在存储中设置的 Ubuntu 镜像移除
在本篇文章之后部分都是在 Ubuntu 上操作,我们都可以使用 Ubuntu 这虚拟机来完成。
如果读者使用的是 Windows 10,可以使用 Windows 系统自带的 Linux 子系统,安装教程可以看我之前的文章 Windows10 安装 Linux 子系统。
使用 pip 安装
如果你还没有在 pip 命令的话,首先要安装 pip,要确保安装的 pip 版本是大于 9.0.0 的,否则可能无法安装 paddlepaddle。
安装 pip 命令如下:
sudo apt install python-pip
安装之后,还有看一下 pip 的的版本 pip --version,如果版本低于 9.0.0,那要先升级 pip,先要下载一个升级文件,命令如下:
wget https://bootstrap.pypa.io/get-pip.py
下载完成之后,可以使用这个文件安装最新的 pip 了
python get-pip.py
安装 pip 就可以动手安装 paddlepaddle 了。如果权限不够,请在 root 下执行命令
pip install paddlepaddle
现在就测试看看 paddlepaddle 有没有,在 python 的命令终端中试着导入 paddlepaddle 包:
import paddle.v2 as paddle
如果没有报错的话就证明 paddlepaddle 安装成功了。
使用 Docker 安装
为什么要使用 Docker 安装 paddlepaddle 呢,Docker 是完全使用沙箱机制的一个容器,在这个容器安装的环境是不会影响到本身系统的环境的。通俗来说,它就是一个虚拟机,但是它本身的性能开销很小。在使用 Docker 安装 paddlepaddle 前,首先要安装 Docker,通过下面的命令就可以安装了:
sudo apt-get install docker
安装完成之后,可以使用 docker --version 查看 Docker 的版本,如果有显示,就证明安装成功了。可以使用 docker images 查看已经安装的镜像。
一切都没有问题之后,就可以用 Docker 安装 paddlepaddle 了,命令如下:
docker pull docker.paddlepaddlehub.com/paddle
在这里不得不说的是,这个安装过程非常久,也许是笔者的带宽太小了。安装完成后,可以再使用 docker images 命令查看安装的镜像,应该可以 看到类似这样一个镜像,名字和 TAG 会相同,其他信息一般不同
docker.paddlepaddlehub.com/paddle latest 2b1ae16d846e 27 hours ago 1.338 GB
从源码编译生成安装包
我们的硬件环境都有很大的不同,官方给出的 pip 安装包不一定是符合我们的需求,比如笔者的电脑是不支持 AVX 指令集的,在官方中没找到这个的安装包(也行现在已经有了),所以我们要根据自己的需求来打包一个自己的安装包。
在本地编译生成安装包
1. 安装依赖环境
在一切开始之前,先要安装好依赖环境,下面表格是官方给出的依赖环境
1.1 安装 GCC
一般现在的 Ubuntu 都是高于个版本了,可以使用 gcc --version 查看安装的版本。比如笔者的是 4.8.4,如果你的是版本是低于 4.8.2 的就要更新一下了
sudo apt-get install gcc-4.9
1.2 安装 CMake
先要从官网下 CMake 源码
wget https://cmake.org/files/v3.8/cmake-3.8.0.tar.gz
解压源码
tar -zxvf cmake-3.8.0.tar.gz
依次执行下面的代码
# 进入解压后的目录
cd cmake-3.8.0
# 执行当前目录的 bootstrap 程序
./bootstrap
# make 一下
make
# 开始安装
sudo make install
查看是否安装成功,cmake --version,如果正常显示版本,那已经安装成功了。
1.3 安装 pip
关于安装 pip9.0.0 以上的版本,在上面的使用 pip 安装部分已经讲了,这里就不在熬述了
1.4 安装 numpy
安装 numpy 很简单,一条命令就够了
sudo apt-get install python-numpy
顺便多说一点,matplotlib 这个包也经常用到,顺便安装一下
sudo apt-get install python-matplotlib
1.5 安装 SWIG
执行下面代码安装 SWIG,安装成功之后,使用 swig -version 检查安装结果
sudo apt-get install -y git curl gfortran make build-essential automake swig libboost-all-dev
1.6 安装 Go
官方说可选择,那看情况吧,如果像安装安装吧,笔者顺便安装了,就一条代码的事情,老规则 go version
sudo apt-get install golang
到这里,依赖环境就已经安装好了,准备安装 paddlepaddle。
2. 首先要在 GitHub 上获取 paddlepaddle 源码
git clone https://github.com/PaddlePaddle/Paddle.git
3. 然后输以下命令
# 进入刚下载的 Paddle 里面
cd Paddle
# 创建一个 build 文件夹
mkdir build
# 进入 build 文件夹里
cd build
# 这就要选好你的需求了,比如笔者没有使用 GPU,不支持 AVX,为了节省空间,我把测试关闭了,这样会少很多空间。最后不要少了..
cmake .. -DWITH_GPU=OFF -DWITH_AVX=OFF -DWITH_TESTING=OFF
# 最后 make,生成你想要的安装包,这个可能很久, 一定要有耐心
make
经过长久的 make 之后,终于生成了我们想要的安装包,它的路径在 Paddle/build/python/dist 下,比如笔者在该目录下有这个安装包 paddlepaddle-0.11.0-cp27-cp27mu-linux_x86_64.whl,你的命名可能不是这个。之后就可以安装了,使用 pip 安装:
# 请切入到该目录
cd build/python/dist/
# 每个人的安装包名字可能不一样。如果权限不够,请在 root 下执行命令
pip install paddlepaddle-0.11.0-cp27-cp27mu-linux_x86_64.whl
这个我们就已经安装了 paddlepaddle,现在就测试看看 paddlepaddle 有没有安装成功了,在 python 的命令终端中试着导入 paddlepaddle 包:
import paddle.v2 as paddle
如果没有报错的话就证明 paddlepaddle 安装成功了。
在 Docker 编译生成安装包
使用 Docker 就轻松很多了,有多轻松,看一下便知 。
1. 首先要在 GitHub 上获取 paddlepaddle 源码
git clone https://github.com/PaddlePaddle/Paddle.git
2. 切入到项目的根目录下
cd Paddle
3. 生成安装包
下面一行代码,提醒一下,这个过程非常长,一定要有耐心,顺便把编译测试关了,减少空间
docker run -it -v $PWD:/paddle -e "WITH_GPU=OFF" -e "WITH_AVX=OFF" -e "-DWITH_TESTING=OFF" docker.paddlepaddlehub.com/paddle:latest-dev bash -x /paddle/paddle/scripts/docker/build.sh
同样会在 Paddle/build/python/dist 下生成一个安装包,这对比在本地生成的安装包,是不是要简单很多,没错这就是 Docker 强大之处,所有的依赖环境都帮我们安装好了,现在只要安装这个安装包就行了:
# 请切入到该目录
cd build/python/dist/
# 每个人的安装包名字可能不一样。如果权限不够,请在 root 下执行命令
pip install paddlepaddle-0.11.0-cp27-cp27mu-linux_x86_64.whl
同样我们要测试看看 paddlepaddle 有没有安装成功了,在 python 的命令终端中试着导入 paddlepaddle 包:
import paddle.v2 as paddle
如果没有报错的话就证明 paddlepaddle 安装成功了。
编译 Docker 镜像
如果你比较喜欢使用 Docker 来运行你的 paddlepaddle 代码,但是有没有你想要的镜像,这是就要自己来制作一个 Docker 镜像了,比如笔者的电脑是不支持 AVX 指令集的,还只有 CPU,那么我就要一个不用 AVX 指令集和使用 CPU 训练的镜像。好吧,我们开始吧
1. 我们要从 GitHub 下载源码:
git clone https://github.com/PaddlePaddle/Paddle.git
2. 安装开发工具到 Docker image 里
# 切入到 Paddle 目录下
cd Paddle
# 下载依赖环境并创建镜像,别少了最后的.
docker build -t paddle:dev .
有可能它不能够命名为 paddle:dev,我们可以对他从重新命名,ID 要是你镜像的 ID
# docker tag <镜像对应的 ID> <镜像名:TAG>
例如:docker tag 1e835127cf33 paddle:dev
3. 编译
# 这个编译要很久的,请耐心等待
docker run --rm -e WITH_GPU=OFF -e WITH_AVX=OFF -v $PWD:/paddle paddle:dev
安装完成之后,使用 docker images 查看刚才安装的镜像。
测试安装环境
我们就使用官方给出的一个例子,来测试我们安装 paddlepaddle 真的安装成功了
1. 创建一个记事本,命名为 housing.py,并输入以下代码:
import paddle.v2 as paddle
# Initialize PaddlePaddle.
paddle.init(use_gpu=False, trainer_count=1)
# Configure the neural network.
x = paddle.layer.data(name='x', type=paddle.data_type.dense_vector(13))
y_predict = paddle.layer.fc(input=x, size=1, act=paddle.activation.Linear())
# Infer using provided test data.
probs = paddle.infer(
output_layer=y_predict,
parameters=paddle.dataset.uci_housing.model(),
input=[item for item in paddle.dataset.uci_housing.test()()])
for i in xrange(len(probs)):
print 'Predicted price: ${:,.2f}'.format(probs[i][0] * 1000)
2. 执行一下该代码
在本地执行代码请输入下面的命令
python housing.py
在 Docker 上执行代码的请输入下面的代码
docker run -v $PWD:/work -w /work -p 8899:8899 docker.paddlepaddle.org/paddle python housing.py
-v 命令是把本地目录挂载到 docker 镜像的目录上,-w 设置该目录为工作目录,-p 设置端口号,使用到的镜像是在使用 Docker 安装部分安装的镜像 docker.paddlepaddle.org/paddle
3. 终端会输出下面类似的日志
I0116 08:40:12.004096 1 Util.cpp:166] commandline: --use_gpu=False --trainer_count=1
Cache file /root/.cache/paddle/dataset/fit_a_line.tar/fit_a_line.tar not found, downloading https://github.com/PaddlePaddle/book/raw/develop/01.fit_a_line/fit_a_line.tar
[==================================================]
Cache file /root/.cache/paddle/dataset/uci_housing/housing.data not found, downloading https://archive.ics.uci.e/ml/machine-learning-databases/housing/housing.data
[==================================================]
Predicted price: $12,316.63
Predicted price: $13,830.34
Predicted price: $11,499.34
Predicted price: $17,395.05
Predicted price: $13,317.67
Predicted price: $16,834.08
Predicted price: $16,632.04
如果没有成功运行该代码,报错信息如下,说明安装的 paddlepaddle 版本过低,请安装高版本的 paddlepaddle
I0116 13:53:48.957136 15297 Util.cpp:166] commandline: --use_gpu=False --trainer_count=1
Traceback (most recent call last):
File "housing.py", line 13, in <mole>
parameters=paddle.dataset.uci_housing.model(),
AttributeError: 'mole' object has no attribute 'model'
最后提示
有很多学习者会出现明明安装完成 PaddlePaddle 了,但是在 PaddlePaddle 的时候,在初始化 PaddlePaddle 这一行代码出错
paddle.init(use_gpu=False, trainer_count=1)
这个多数是读者的电脑不支持 AVX 指令集,而在 PaddlePaddle 的时候,安装的是支持 AVX 指令集的版本,所以导致在初始化 PaddlePaddle 的时候报错。所以在安装或者编译 PaddlePaddle 安装包时,要根据读者电脑本身的情况,选择是否支持 AVX 指令集。查看电脑是否支持 AVX 指令集,可以在终端输入以下命令,输出 Yes 表示支持,输出 No 表示不支持。
if cat /proc/cpuinfo | grep -i avx; then echo Yes; else echo No; fi
项目代码
GitHub 地址:https://github.com/yeyupiaoling/LearnPaddle
参考资料
http://paddlepaddle.org/
https://pip.pypa.io/en/stable/
http://www.runoob.com/
http://www.linuxidc.com/Linux/2016-12/138489.htm
https://www.jianshu.com/p/c6264cd5f5c7
④ 新手如何学习Linux
新手学习建议找准学习方向报班学习。
Linux主体分为“运维”与“开发”两个方向,无论你是Linux相关从业者,还是说爱好都可以归类到这里,其中“运维”一般是初学者或者转行人员的首选,而Linux运维主要是对服务器稳定、性能与安全方面的维护和调试。
实际上Linux入门并不困难,只要具备Linux基础,读懂Linux的命令格式,大多数的服务架构都是可以按照文档部署出来。当然做Linux开发,个人建议去参加培训学习更有效率,如果报班学习则大概需要4-6个月时间。
学习主要内容有:
1)网络基础与linux系统的管理
2)优化及高可用技能
3)虚拟化与云平台技术
4)开发运维
毕业后可从事的工作有:
1)Linux运维工程师
2)数据库工程师
3)云计算运维工程师
4)自动化运维工程师
5)云计算架构工程师等
互联网行业目前还是最热门的行业之一,学习IT技能之后足够优秀是有机会进入腾讯、阿里、网易等互联网大厂高薪就业的,发展前景非常好,普通人也可以学习。
想要系统学习,你可以考察对比一下开设有相关专业的热门学校,好的学校拥有根据当下企业需求自主研发课程的能力,能够在校期间取得大专或本科学历,中博软件学院、南京课工场、南京北大青鸟等开设相关专业的学校都是不错的,建议实地考察对比一下。
祝你学有所成,望采纳。
⑤ 万佳安监视器购买了云服务器怎么使用
有的同学不知道有了服务器以后怎么耍,小编这里给大家简单写写,希望对新人有帮助。
一、简单使用服务器
获取云服务器...
获取以后,我们可以登录阿里云控制台的提货券管理找到刚才买的服务器:
系统选择上,我们搞java的一般选Centos就好了(按需选择):
一般来说,我们买了服务器都是通过SSH连接去操作服务器的,我在Windows上一般使用Xshell去连接服务器的。(Xshell可以在公众号下回复“99”得到下载链接)
步骤为以下:
首先,我们先在Xshell生成公钥
在阿里云控制台创建密钥对(选择配置项;导入已有的密钥对)
输入刚才在Xshell生成的公钥信息
在后台重启阿里云服务器
完了以后,我们就可以在Xshell上登录阿里云服务器了(用户名为root)
生成公钥:
最终得到公钥的信息:
在阿里云后台创建密钥对:
重启服务器:
Xshell登录:
Xshell的一些配置:
登录成功:
详细的教程(必看):
https://blog.csdn.net/longgeaisisi/article/details/78680180
二、使用Linux系统
上面我们已经可以通过Xshell去连接云服务器了,而Centos是Linux系统,首先我们要学习一些Linux命令才能操作。
小编之前发布过几篇文章,如果不懂Linux命令的同学可以跟着练练,小编认为可以解决日常的使用了(如果一些想要做的操作,又不知道怎么弄,搜一下程序猿猩球往期内容就好了)
2.1 下载JDK和MySQL/Tomcat
JDK8下载:
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
MySQL下载:
https://dev.mysql.com/downloads/mysql/5.6.html#downloads
现在下载JDK和MySQL需要账号和密码;可以使用这个:
账号:[email protected]
密码:OracleTest1234
下载Tomcat:
https://tomcat.apache.org/download-80.cgi
在Windows安装完了以后,我们要将Windows的文件传输到我们的远程服务器上。在Xshell中点击下图的位置:
找到我们的文件,传输就好了;
2.3安装JDK
完了以后,输出Java版本看一下:
2.4 安装MySQL
安装所需的环境
安装bison(我安装的是2.5.1的版本)
安装gc++环境:
安装cmake(我安装的是3.15.4的版本)
解压刚刚下载的Mysql安装包(我是按照它的指示就在root的目录下安装)
使用cmake安装
make 和安装
配置mysql
创建mysql用户(但是不能使用mysql账号登陆系统)
修改权限
切换到mysql目录
设置权限等东西
将mysql的配置文件拷贝到/etc
修改my.cnf
⑥ Linux下面cmake命令意义cmake -D CMAKE_BUILD_TYPE=RELEASE
"怎么知道在源代码目录中编译的呢?" 这个是因为后边的那 .. 的缘故, .. 表示上层目录. 那.. 就是<path to the OpenCV source directory>
-D 相当于就是定义, -D 可以理解为告诉cmake 后边我要定义一些参数了, 你每定义一个就在前边加上-D就是了
CMAKE_BUILD_TYPE 这种东西往往是在CMakeList.txt 中定义的, 这个是你要编译的类型, 一般的选择有debug,release, 但是不确定
CMAKE_INSTALL_PREFIX 这个是安装路径.
⑦ Ubuntu 16.04LTS echo -e '\a'没有报警声
1.安装Linux系统,本文只介绍Ubuntu16.04LTS下的环境搭建。因此我不在这里详述Linux系统的安装方法,有需求的朋友可以问问度娘经验。
2.编译环境需要用gcc-4.5以上的,而且最好把C++和CUDA也安装好。另外,代码作者在仓库说明上建议GPU的兼容性在2.0以上,而我的GT620M刚好是2.1。因此我顺便安装好相应的编译器和驱动,具体的安装方法我在这不做说明,请看我的另一篇博客。
3.安装所有的Boost库。
4.安装Google的Protocol Buffers。
5.安装Opencv 2.4系列,3.0系列版本不支持。另外,如果考虑时间上的优化,作者强烈建议编译OpenCV的时候带上编译选项-ffast-math -funroll-loops -march=native从而指定使用CUDA,并使能SIMD指令集优化。
6.安装libSDL,libjpeg, libpng。
7.安装CMake(>=2.4.3)。
后文主要对以上的3、4、6项准备工作进行详解。至于第7项准备一般是系统自带好了,如果还真没带的话,可以考虑apt一个就行。而第5项准备工作在网上有很多资料,我习惯是用cmake-gui工具来编译Opencv,对这个有兴趣的朋友可以到网上查找相关材料。如果这俩样真搞不定的话,可以评论告诉我,我适当抽时间写个补充说明,下面开始进入主要内容。
Boost库的安装
Boost的安装其实我主要是参考这篇博客
1.下载Boost 的源码包,下载地址:
https://sourceforge.net/projects/boost/files/boost/1.58.0
如果这个源码地址过期,还可以到下面的Boost的官方网站查找
http://www.boost.org/
2.在下载boost的同时,你可以安装下面四个boost的依赖库
apt-get install mpi-default-dev libicu-dev python-dev libbz2-dev
#安装mpi库
#支持正则表达式的UNICODE字符集
#需要python的话12345
3.下载得到boost1_58_0.tar.bz2后,切换到文件所在目录,终端输入下面命令解压得到boost_1_58_0
tar -jxvf boost_1_58_0.tar.bz21
4.(可选)修改user-config.jam文件。在boost/tools下用下面命令搜索user-config.jam
find . -name user-config.jam1
打开user-config.jam文件,并在最后添加一行代码
using mpi ; #注意mpi后面有一个空格1
值得一提的是,Message Passing Interface (MPI) 库用于分布式计算中的消息传递,可以考虑弄一下,毕竟这步花不了太多时间。
5.编译Boost库,输入下面指令
sudo ./bootstrap.sh1
得到b2和bjam,在执行下面指令
sudo ./b2 -a -sHAVE_ICU=1
#-a参数,代表重新编译,-sHAVE_ICU=1代表支持Unicode/ICU12
然后就可以have a cup of coffee to take a rest
6.编译完成后,输入下面命令安装boost库
sudo ./b2 install1
安装libSDL
用下列指令安装libSDL库
sudo apt-get install libsdl1.2-dev1
安装protobuf库
sudo apt-get install libprotobuf-dev libprotoc-dev python-protobuf protobuf-compiler1
编译Doppia
STEP1:配置环境变量与编译选项
在编译各种程序之前,我首先打开并编辑common_settings.cmake文件,添上一些自己机器的配置信息,下面是我的配置信息仅作参考。
....
elseif(${HOSTNAME} STREQUAL "my-Apple-computer")
# change the_name_of_your_machine to what /bin/hostname returns
message(STATUS "Using my-Apple-computer compilation options")
# start with an empty section, and see what fails as you go through the re adme.text instructions
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_FORCE_INLINES")
set(opencv_INCLUDE_DIRS "/usr/local/opencv2/include")
set(opencv_LIBRARY_DIRS "/usr/local/opencv2/lib")
option(USE_GPU "Should the GPU be used ?" TRUE)
set(CUDA_BUILD_CUBIN OFF)
set(local_CUDA_LIB_DIR "/usr/local/cuda/lib64")
set(cuda_LIBS "")
set(Boost_DIR "/usr/local")
set(Boost_LIBRARY_DIRS "/usr/local/lib")
set(Boost_INCLUDE_DIRS "/usr/local/include/boost")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DBOOST_VARIANT_USE_RELAXED_GET_BY_DEFAULT=1")然后,运行脚本./generate_protocol_buffer_files.sh,输出以下信息
+ echo Generating objects detection files...
Generating objects detection files...
+ cd src/objects_detection/
+ protoc --cpp_out=./ detector_model.proto detections.proto
[libprotobuf WARNING google/protobuf/compiler/parser.cc:546] No syntax specified for the proto file: detector_model.proto. Please use 'syntax = "proto2";' or 'syntax = "proto3";' to specify a syntax version. (Defaulted to proto2 syntax.)
[libprotobuf WARNING google/protobuf/compiler/parser.cc:546] No syntax specified for the proto file: detections.proto. Please use 'syntax = "proto2";' or 'syntax = "proto3";' to specify a syntax version. (Defaulted to proto2 syntax.)
+ protoc --python_out=../../tools/objects_detection/ detector_model.proto detections.proto
[libprotobuf WARNING google/protobuf/compiler/parser.cc:546] No syntax specified for the proto file: detector_model.proto. Please use 'syntax = "proto2";' or 'syntax = "proto3";' to specify a syntax version. (Defaulted to proto2 syntax.)
[libprotobuf WARNING google/protobuf/compiler/parser.cc:546] No syntax specified for the proto file: detections.proto. Please use 'syntax = "proto2";' or 'syntax = "proto3";' to specify a syntax version. (Defaulted to proto2 syntax.)
+ cd ../..
+ cd src/stereo_matching/ground_plane/
+ protoc --cpp_out=./ plane3d.proto
[libprotobuf WARNING google/protobuf/compiler/parser.cc:546] No syntax specified for the proto file: plane3d.proto. Please use 'syntax = "proto2";' or 'syntax = "proto3";' to specify a syntax version. (Defaulted to proto2 syntax.)
+ protoc --python_out=../../../tools/stixels_evaluation plane3d.proto
[libprotobuf WARNING google/protobuf/compiler/parser.cc:546] No syntax specified for the proto file: plane3d.proto. Please use 'syntax = "proto2";' or 'syntax = "proto3";' to specify a syntax version. (Defaulted to proto2 syntax.)
+ cd ../../..
+ cd src/stereo_matching/stixels/
+ protoc --cpp_out=./ -I. -I../ground_plane --include_imports stixels.proto ground_top_and_bottom.proto
--include_imports only makes sense when combined with --descriptor_set_out.
[libprotobuf WARNING google/protobuf/compiler/parser.cc:546] No syntax specified for the proto file: stixels.proto. Please use 'syntax = "proto2";' or 'syntax = "proto3";' to specify a syntax version. (Defaulted to proto2 syntax.)
[libprotobuf WARNING google/protobuf/compiler/parser.cc:546] No syntax specified for the proto file: ground_top_and_bottom.proto. Please use 'syntax = "proto2";' or 'syntax = "proto3";' to specify a syntax version. (Defaulted to proto2 syntax.)
[libprotobuf WARNING google/protobuf/compiler/parser.cc:546] No syntax specified for the proto file: plane3d.proto. Please use 'syntax = "proto2";' or 'syntax = "proto3";' to specify a syntax version. (Defaulted to proto2 syntax.)
+ protoc --python_out=../../../tools/stixels_evaluation -I. -I../ground_plane --include_imports stixels.proto ground_top_and_bottom.proto
--include_imports only makes sense when combined with --descriptor_set_out.
[libprotobuf WARNING google/protobuf/compiler/parser.cc:546] No syntax specified for the proto file: stixels.proto. Please use 'syntax = "proto2";' or 'syntax = "proto3";' to specify a syntax version. (Defaulted to proto2 syntax.)
[libprotobuf WARNING google/protobuf/compiler/parser.cc:546] No syntax specified for the proto file: ground_top_and_bottom.proto. Please use 'syntax = "proto2";' or 'syntax = "proto3";' to specify a syntax version. (Defaulted to proto2 syntax.)
[libprotobuf WARNING google/protobuf/compiler/parser.cc:546] No syntax specified for the proto file: plane3d.proto. Please use 'syntax = "proto2";' or 'syntax = "proto3";' to specify a syntax version. (Defaulted to proto2 syntax.)
+ cd ../../..
+ cd src/video_input/calibration
+ protoc --cpp_out=./ calibration.proto
[libprotobuf WARNING google/protobuf/compiler/parser.cc:546] No syntax specified for the proto file: calibration.proto. Please use 'syntax = "proto2";' or 'syntax = "proto3";' to specify a syntax version. (Defaulted to proto2 syntax.)
+ cd ../../..
+ cd src/helpers/data
+ protoc --cpp_out=./ DataSequenceHeader.proto
[libprotobuf WARNING google/protobuf/compiler/parser.cc:546] No syntax specified for the proto file: DataSequenceHeader.proto. Please use 'syntax = "proto2";' or 'syntax = "proto3";' to specify a syntax version. (Defaulted to proto2 syntax.)
+ protoc --python_out=../../../tools/data_sequence DataSequenceHeader.proto
[libprotobuf WARNING google/protobuf/compiler/parser.cc:546] No syntax specified for the proto file: DataSequenceHeader.proto. Please use 'syntax = "proto2";' or 'syntax = "proto3";' to specify a syntax version. (Defaulted to proto2 syntax.)
+ cd ../../..
+ cd src/helpers
+ cd ../..
+ cd src/tests/data_sequence/
+ protoc --cpp_out=./ TestData.proto
[libprotobuf WARNING google/protobuf/compiler/parser.cc:546] No syntax specified for the proto file: TestData.proto. Please use 'syntax = "proto2";' or 'syntax = "proto3";' to specify a syntax version. (Defaulted to proto2 syntax.)
+ cd ../../..
+ echo End of game. Have a nice day!
End of game. Have a nice day!
STEP2:编译CPU单跑代码
根据官方教程,我们首先编译
doppia/src/applications/ground_estimation
这是一个能够保证咱们cmake和c++编译没问题的简单验证程序。
1.对于不同程序编译我们需要进入不同的目录下:
cd doppia/src/applications/ground_estimation1
2.运行cmake -D CMAKE_BUILD_TYPE=RelWithDebInfo . && make
如果你确定这次编译一定成功,而且你的机器有足够内存,你可以考虑使用cmake . && make -j5来加速编译。
3.对于已经编译成功过的程序,可以直接执行下面的指令。
cmake . && make -j2 && ./ground_estimation -c test.config.ini1
如果ground_estimation编译成功以后,我们就可以开始编译ground_estimation
$ cd doppia/src/applications/stixel_world
$ cmake . && make -j2 && OMP_NUM_THREADS=4 ./stixel_world -c fast.config.ini --gui.disable false
$ cmake . && make -j2 && OMP_NUM_THREADS=4 ./stixel_world -c fast_uv.config.ini --gui.disable false123
STEP3:编译测试代码
1.$ cd doppia/src/applications/objects_detection
2.cmake -D CMAKE_BUILD_TYPE=RelWithDebInfo . && make -j2
3.运行代码
$ cmake . && make -j2 && OMP_NUM_THREADS=4 ./objects_detection -c cvpr2012_very_fast_over_bahnhof.config.ini --gui.disable false1
其实STEP1编过之后,下来的问题都不是很大了,如果来到这一步STEP3也很成功的话,就说明你这个环境配置已经没太大问题了。所以,后面根据作者在的编译说明继续执行step4和step5就好了。
总结
长话短说,这个配置成功与否在于准备工作的boost与protobuf库的安装。另外,最重要的是comom_settings.cmake的配置,这个配置文件编辑如果好了,基本上后面是事半功倍的。
(FIN)
⑧ 在kali linux 系统中如何安装gnuradio
10kali 1.09安装gnuradio,配置软件无线电教程GNURadio可谓是开源界无线电爱好者的”军火库”。看名字可能你就猜到了,GNURadio是开源的,并且使用GPL协议开源。
项目主页和介绍:(可能被墙了,自行翻墙)
http://gnuradio.org/redmine/projects/gnuradio/wiki
安装GNURadio有三种方式:(1)自动化安装脚本安装(2)手动编译安装
在支持的情况下尽量使用自动化安装脚本进行安装,原因是各linux发行版更新源中的GNURadio版本相对较老,可能会有相关的依赖问题。且使用自动化安装脚本可以使用到最新版本的GNURadio,并且省去了手动编译安装的麻烦。
(1)使用自动化编译脚本进行安装(推荐)
在/home文件夹内新建一个src文件夹存放安装脚本源码:
mkdir src
进入存放源码与脚本的文件夹:
cd src
下载自动化安装脚本并执行:
wget http://www.sbrac.org/files/build-gnuradio && chmod a+x ./build-gnuradio && ./build-gnuradio
安装过车给中会提示用户是否执行脚本,点击y即可,然后请求root权限等,请根据提示操作,另外编译的时间较长,可能会耗费数小时,请耐心等待。
如果发现无法下载请使用VPN或者其他代理翻墙。
kali1.06,1.09均不支持脚本安装。需要手动编译安装。
(2)手动编译安装 ,手动编译的顺序是
- 安装各种依赖包
- 安装gnuradio
- hackrf / rtlsdr
- gr-osmosdr
sudo apt-get -y install build-essential cmake git-core autoconf automake libtool g++ python-dev swig pkg-config libfftw3-dev libboost1.53-all-dev libcppunit-dev libgsl0-dev libusb-dev sdcc libsdl1.2-dev python-wxgtk2.8 python-numpy python-cheetah python-lxml doxygen python-qt4 python-qwt5-qt4 libxi-dev libqt4-opengl-dev libqwt5-qt4-dev libfontconfig1-dev libxrender-dev libusb-1.0
1
sudo apt-get -y install build-essential cmake git-core autoconf automakelibtool g++ python-dev swig pkg-config libfftw3-dev libboost1.53-all-dev libcppunit-dev libgsl0-dev libusb-dev sdcc libsdl1.2-dev python-wxgtk2.8 python-numpy python-cheetah python-lxml doxygen python-qt4 python-qwt5-qt4 libxi-dev libqt4-opengl-dev libqwt5-qt4-dev libfontconfig1-dev libxrender-dev libusb-1.0
编译GNURadiogit clone --progress http://gnuradio.org/git/gnuradio.git cd gnuradio mkdir build cd build cmake ../ make -j4 #4代表用4核编译 sudo make install sudo ldconfig
1
2
3
4
5
6
7
8
git clone --progress http://gnuradio.org/git/gnuradio.git
cd gnuradio
mkdir build
cd build
cmake ../
make -j4 #4代表用4核编译
sudo make install
sudo ldconfig
编译hackrfgit clone --progress http://github.com/mossmann/hackrf.git cd hackrf/host mkdir build cd build cmake ../ -DINSTALL_UDEV_RULES=ON make sudo make install sudo ldconfig
1
2
3
4
5
6
7
8
git clone --progress http://github.com/mossmann/hackrf.git
cd hackrf/host
mkdir build
cd build
cmake ../ -DINSTALL_UDEV_RULES=ON
make
sudo make install
sudo ldconfig
编译rtlsdr(可选)git clone --progress git://git.osmocom.org/rtl-sdr cd rtl-sdr mkdir build cd build cmake ../ -DINSTALL_UDEV_RULES=ON -DDETACH_KERNEL_DRIVER=ON sudo make install sudo ldconfig
1
2
3
4
5
6
7
git clone --progress git://git.osmocom.org/rtl-sdr
cd rtl-sdr
mkdir build
cd build
cmake ../ -DINSTALL_UDEV_RULES=ON -DDETACH_KERNEL_DRIVER=ON
sudo make install
sudo ldconfig
编译gr-osmosdrgit clone --progress git://git.osmocom.org/gr-osmosdr cd gr-osmocom mkdir build cd build cmake ../ make sudo make install sudo ldconfig
1
2
3
4
5
6
7
8
git clone --progress git://git.osmocom.org/gr-osmosdr
cd gr-osmocom
mkdir build
cd build
cmake ../
make
sudo make install
sudo ldconfig
编译gqrx(可选)git clone https://github.com/csete/gqrx.git cd gqrx mkdir build cd build qmake ../gqrx.pro make sudo make install sudo ldconfig
1
2
3
4
5
6
7
8
git clone https://github.com/csete/gqrx.git
cd gqrx
mkdir build
cd build
qmake ../gqrx.pro
make
sudo make install
sudo ldconfig
编译完成后你可以尝试以下命令
- osmocom_fft : 一个简单的HackRF频谱仪
- osmocom_siggen : 一个简单的HackRF信号源
- gqrx : 类似于SDR#的广播接收器
⑨ 帕斯卡cmake cuda 没有
在网上网络,并没有找到什么合适的教程,让我等小白着急不已。借助于GOOGLE的强大能力,发现原来cmake已经支持了cuda;于是乎,赶紧
http://www.cmake.org/
下载了最新的cmake,调用了里面的一个FindCUDA.cmake,完成了自己的第一次使用cmake编译cuda代码。具体步骤如下:
1.下载最新版的cmake(其实只要有FindCUDA.cmake这个文件,你就可以编译cuda与c或者c++混合的代码文件了)
2.因为初次测试,所以我把所有的文件都放在同一个文件夹下面:c_cpp_cu1.cu;c_cpp_cu3.cpp两个源文件加一个CMakeLists.txt文件;
3.CmakeLists.txt
[plain] view plain
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
PROJECT(test_cuda)
INCLUDE(/..../Downloads/cmake-3.2.2-Linux-x86_64/share/cmake-3.2/Moles/FindCUDA.cmake)
CUDA_ADD_EXECUTABLE(tset_cuda
c_cpp_cu3.cpp
c_cpp_cu1.cu)
4.c_cpp_cu3.cpp
[html] view plain
#include <iostream>
using namespace std;
extern "C" int func(); //注意这里的声明
int main()
{
func();
return 0;
}
5.c_cpp_cu1.cu
[html] view plain
#include <stdio.h>
#include <stdlib.h>
#include <cuda_runtime.h>
#define ROWS 32
#define COLS 16
#define CHECK(res) if(res!=cudaSuccess){exit(-1);}
__global__ void Kerneltest(int **da, unsigned int rows, unsigned int cols)
{
unsigned int row = blockDim.y*blockIdx.y + threadIdx.y;
unsigned int col = blockDim.x*blockIdx.x + threadIdx.x;
if (row < rows && col < cols)
{
da[row][col] = row*cols + col;
}
}
extern "C" int func() // 注意这里定义形式
{
int **da = NULL;
int **ha = NULL;
int *dc = NULL;
int *hc = NULL;
cudaError_t res;
int r, c;
bool is_right=true;
res = cudaMalloc((void**)(&da), ROWS*sizeof(int*));CHECK(res)
res = cudaMalloc((void**)(&dc), ROWS*COLS*sizeof(int));CHECK(res)
ha = (int**)malloc(ROWS*sizeof(int*));
hc = (int*)malloc(ROWS*COLS*sizeof(int));
for (r = 0; r < ROWS; r++)
{
ha[r] = dc + r*COLS;
}
res = cudaMemcpy((void*)(da), (void*)(ha), ROWS*sizeof(int*), cudaMemcpyHostToDevice);CHECK(res)
dim3 dimBlock(16,16);
dim3 dimGrid((COLS+dimBlock.x-1)/(dimBlock.x), (ROWS+dimBlock.y-1)/(dimBlock.y));
Kerneltest<<<dimGrid, dimBlock>>>(da, ROWS, COLS);
res = cudaMemcpy((void*)(hc), (void*)(dc), ROWS*COLS*sizeof(int), cudaMemcpyDeviceToHost);CHECK(res)
for (r = 0; r < ROWS; r++)
{
for (c = 0; c < COLS; c++)
{
printf("%4d ", hc[r*COLS+c]);
if (hc[r*COLS+c] != (r*COLS+c))
{
is_right = false;
}
}
printf("\n");
}
printf("the result is %s!\n", is_right? "right":"false");
cudaFree((void*)da);
cudaFree((void*)dc);
free(ha);
free(hc);
// getchar();
return 0;
}
6.运行cmake_gui(之前学长推荐,方便,不过如果你不喜欢可以直接cmake+make)
完成,生成一大堆文件+test_cuda的可执行文件
⑩ CentOS 7 用户怎样安装 LNMP
LNMP是一个基于CentOS编写的Nginx、php、MySQL、phpMyAdmin、eAccelerator一键安装包。可以在独立主机上轻松的安装LNMP生产环境。
一、获取lnmp源码
1、打开网络,输入lnmp,打开第一个lnmp官网,里面含有很丰富的信息,这里先下载最新版的安装包
2、通过wget http://soft.vpser.net/lnmp/lnmp1.2-full.tar.gz 下载,选择其他下载地址也可以的;
二、安装lnmp
1、解压tar -xvf lnmp1.2-full.tar.gz ;
2、进入 源码目录cd lnmp1.2-full/
3、执行./install.sh开始配置,配置完提示Press any key to install...or Press Ctrl+c to cancel,回车后自动编译安装,过程比较漫长,好好等待;
4、安装完成,虽然等待了很久。但是安装完成了很开心。
三、lnmp基本操作
1、开启关闭lnmp服务;
2、访问主要,phpinfo等,验证是否安装成功;
3、在web根目录下编写脚本访问,通过浏览器访问;
访问输出,脚本信息,这样就安装成功了。
注意事项:
下载和安装过程比较漫长,一定耐心仔细