声明坑🕳🕳🕳太多建议先浏览一遍,再操作!!!听话,乖 ~ ~ o(@)o!!!
首先从网上把代码拉下来,只要是完整tensorRT工程就可以。
来看README.md
这个配置还是很详细的,
C_Cpp_Properties.json是用于配置编译器环境的,包括启动器代号、位数(这些是自定义的)、编译选项、启动设置、编译模式等。
可以看到头文件路径都报错了,那是因为你的库的路径跟别人的肯定不一样,你要把路径都换成你自己的。
你自己也不知道位置的话可以用 “ find / -name opencv-4.2.0” 从根目录开始查找一下
后面的以此类推,建议填的时候保留原始的路径,这样方便你查漏补缺。
我这里cudnn/tensorRT/protobuf 都是后装的。
1、cudnn 很好说,装个跟你cuda 配套的就行。
可以参考这篇文章ubuntu20.04安装cuda10.2及cudnn-10.2-linux-x64-v8.0.4.30_linux安装cuda10.2_小旺的尾巴的博客-CSDN博客
2、安装 tensorRT (此处有坑🕳)
tensorRT 的版本跟你cuda的版本,cudnn的版本要一 一对应,
可以参考这篇文章:Ubuntu20.04 安装tensorRT - 知乎 (zhihu.com)
那对应我的呢,本来不迷糊,cuda10.2+cudnn10.2, 可是我非要手欠 查了一下cuda 版本
nvcc -V
关键还手欠查了下 nvidia-smi
妈耶! 这个竟然是11.4,那我cudnn 是不是装错了,不对啊,验证通过了已经。
那我tensorRT 装那个版本呢
(32条消息) 一文讲清楚CUDA、CUDA toolkit、CUDNN、NVCC关系_cudatoolkit和cuda有关系吗_健0000的博客-CSDN博客
然后又去查各种关系,人家的都是一致的,最后可以总结如下
CUDA:为“GPU通用计算”构建的运算平台。
cudnn:为深度学习计算设计的软件库。
CUDA Toolkit (nvidia): CUDA完整的工具安装包,其中提供了 Nvidia 驱动程序、开发 CUDA 程序相关的开发工具包等可供安装的选项。包括 CUDA 程序的编译器、IDE、调试器等,CUDA 程序所对应的各式库文件以及它们的头文件。
CUDA Toolkit (Pytorch): CUDA不完整的工具安装包,其主要包含在使用 CUDA 相关的功能时所依赖的动态链接库。不会安装驱动程序。
(NVCC 是CUDA的编译器,只是 CUDA Toolkit 中的一部分)
对于 nvidia-smi 查到的CUDA版本呢,是跟cuda驱动在一起的版本
简单来说就是你安装的一些运算类型的依赖都依据 nvcc -V 的版本来装就行了。
你以为到这里就结束了吗? 不还早着呢!
本来我是安装完 protobuf 再测试的,提前给大家补个坑🕳🕳🕳
又双叒叕报错了!!!
哎别念又又又又又了人家读又双叒叕(yòu shuāng ruò zhuó)
什么意思呢,就是说cuda-10.2 支持的 gcc版本为 8及以前的版本,而我的是,确切的说我也不知道我的gcc版本是多少,“ ls /usr/bin/gcc* -l ”, 记得 g++版本也查下 “ ls /usr/bin/g++* -l ”
不知道你看出来问题没,当时我是没看出来,然后嘎嘎一顿操作,(32条消息) Ubuntu18.04——切换gcc版本 / 报错解决: error – unsupported GNU version gcc later than 10 are not supported_unsupported gnu version! gcc versions later than 1_Irving.Gao的博客-CSDN博客
我这次留了个心眼,先把 这个版本备份了一份
然后一通安装,“ sudo apt-get install gcc-8 ” , “ sudo apt-get install g+±8 ”
安装后找不到不管他直接连接试一试,(坑🕳来了gcc版本)
这下gcc 不止版本不对了,都找不到了怎么办删了重装吧!
注意哈! 这个是错误的,错误的,错误的!!!
这样会吧原文件的给删除掉!
正确的操作。。。
(32条消息) Linux正确删除软链接_删除软连接_Takoony的博客-CSDN博客
不说了,重装系统去了。。。
开个玩笑,嘻嘻嘻嘻。
上面说不知道你看出来没,指的就是,其实我这里的gcc是有两个版本的一个是9,一个是8
先来个麻烦的吧,(32条消息) linux修改gcc和g++的版本(以gcc-8为例)_linux g++版本_小土同学!的博客-CSDN博客
(32条消息) cuda安装、gcc多版本兼容安装切换_cuda11.3对应的gcc版本_aworkholic的博客-CSDN博客
其实根本不用那么复杂,你只需要把不需要的版本移动到其他位置就行,切别放在根目录下,最好放在用户目录下,这样连接找不到。
关于cuda对应的gcc版本
放在下面了。
3、好的接下来剩下一个protobuf 了
大家一定要听劝知道吗?
我就是头铁不听劝,找了个教程装的是protobuf 3.19.4 有点懒版本就没改
(32条消息) Linux安装protobuf(C++)和简单使用_linux安装c++11_何苦做开发的博客-CSDN博客
不知道你有没有疑问,我用个tensorRT干嘛要装这个,cuda/cudnn/gcc/opencv都可以理解!我是有这个疑问的。
什么是Protobuf
我们先来看看官方文档给出的定义和描述:
protocol buffers 是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等。
Protocol Buffers 是一种灵活,高效,自动化机制的结构数据序列化方法-可类比 XML,但是比 XML 更小(3 ~ 10倍)、更快(20 ~ 100倍)、更为简单。
你可以定义数据的结构,然后使用特殊生成的源代码轻松的在各种数据流中使用各种语言进行编写和读取结构数据。你甚至可以更新数据结构,而不破坏由旧数据结构编译的已部署程序。
简单来讲, ProtoBuf 是结构数据序列化[1] 方法,
原文链接:https://blog.csdn.net/qq_42008300/article/details/123284707
反正就是需要,你装就是了。
🕳来了。。。
tar zxvf protobuf-all-3.19.4.tar.gz //解压
cd protobuf-3.19.4/ //进入解压目录
//检查并安装以下环境,本次使用centos7环境,Ubuntu使用apt-get安装。
sudo yum install autoconf
sudo yum install automake
sudo yum install libtool
//以上安装成功后执行下面
./autogen.sh
//生成编译配置文件成功,运行配置脚本
./configure
make //要编译很久
make check //测试
make install //安装
安装成功
protoc --version *//查看版本*
什么坑呢,我装完之后找不到protobuf 了,GG了
人家是直接指定到的,什么愿意呢,因为我生成配置文件的时候,没有指定路径,所以就默认安装,安装到了 /usr/bin/ 下面,你可千万别学我啊!!!
怎么办呢???删吧,还能怎么办!
删除protobuf
1.sudo rm /usr/local/bin/protoc //执行文件
2.sudo rm -rf /usr/local/include/google //头文件
3.sudo rm -rf /usr/local/lib/libproto* //库文件
你敢这样删吗? 我是不敢,我的在bin下面,算了
重装吧
tar zxvf protobuf-all-3.19.4.tar.gz //解压
cd protobuf-3.19.4/ //进入解压目录
//检查并安装以下环境,本次使用centos7环境,Ubuntu使用apt-get安装。
sudo yum install autoconf
sudo yum install automake
sudo yum install libtool
//以上安装成功后执行下面
./autogen.sh
//生成编译配置文件成功,运行配置脚本
./configure /usr/local/protobuf3.19.4
make //要编译很久
make check //测试
make install //安装
安装成功
protoc --version *//查看版本*
嗯终于完成了,终于可以编译学习了。
(32条消息) protobuf版本常见问题_Adenialzz的博客-CSDN博客
结束了,码字不易记得三连,谢谢!!!
哼(¬︿̫̿¬☆)才没有,不出意外的又出意外了。。。。。。。。。。
我装的protobuf 版本太高了,本来我想的是会自动向下兼容的,哎,。。。。心累
所以说大家一定要听劝,俗话说听人劝吃饱饭!!!
步骤知道了,换个版本重装一下啦,就OKOKOK了,祝大家加速破级,升职又加薪,记得三连,谢谢!!!
对了,这个工程有两个编译方式,CMakelists 跟 Makefile ,选择一个你喜欢的,把另一个屏蔽掉,不然,哼哼😕 ,你会体验到路径怎么填都不对!!!