IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> AR学习笔记(二):Exiv2库的编译 -> 正文阅读

[游戏开发]AR学习笔记(二):Exiv2库的编译

课题需要使用到exiv2的库,这里记录一下编译过程中遇到的问题


exiv2

官方文档:https://www.exiv2.org/
下了官网的软件包,还在研究软件包的说明,看看怎么安装…

(正确的食用方法)Build, Install, Use Exiv2 on a UNIX-like system

下载软件包:https://www.exiv2.org/download.html
点击Download Source下载的包是对的,看一下README.md的2.1节

$ cd ~/gnu/github/exiv2  # location of the project code
$ mkdir build && cd build
$ cmake .. -DCMAKE_BUILD_TYPE=Release
$ cmake --build .
$ make tests
$ sudo make install

安装完成!

(错误方式)To run exiv2 from the bundle

下面这一小节是我犯蠢了,下错了软件包,还把系统搞崩了一次,直接跳过

$ cd <bundle>
$ env LD_LIBRARY_PATH="$PWD/lib:$LD_LIBRARY_PATH" bin/exiv2

第一段标题是从软件包中启动exiv2,其中env用于列出所有的环境变量,LD_LIBRARY_PATH是程序链接时的路径
出现了以下报错:

zzy@zzy-hp:~/exiv2-0.27.4-Linux64$ env LD_LIBRARY_PATH="$PWD/lib:$LD_LIBRARY_PATH" bin/exiv2
bin/exiv2: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by bin/exiv2)
bin/exiv2: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /home/zzy/exiv2-0.27.4-Linux64/lib/libexiv2.so.27)
bin/exiv2: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /home/zzy/exiv2-0.27.4-Linux64/lib/libexiv2.so.27)

看起来是缺少了GLIBCXX_3.4.26/GLIBC_2.29这两个东西

1.先解决一下GLIBCXX_3.4.26这个链接库

因为安装的gcc版本比较高,生成的动态库没有替换老版本gcc的动态库,GLIBCXX中的版本比较低,将gcc最新版本的动态库替换系统中老版本的动态库即可

找到了一个帖子解决了缺少GLIBCXX_3.4.26的问题:https://blog.csdn.net/phdsky/article/details/84104769
重新链接的过程如下:
在这里插入图片描述
2.接下来处理GLIBC_2.29这个东西

warning!!!不要按上面的方法cp文件!!我cp了一份系统直接崩溃了,我裂开,只能重装系统了


遇到的问题

1.未定义的引用

编译程序时出现了如下报错
在这里插入图片描述查了一下page应该是gcc编译器版本的问题

c++11与旧的c++库函数实现存在差异,当本地的c++代码动态库为旧版本c++库所实现,而编译器g++5,gcc5将其解释为std::__cxx11,就会出现未定义错误,那么需要指定编译器的版本为g++4,gcc4,再进行编译时就不会发生上述问题

解决:安装了4.8版本和5.5版本的gcc和g++,还是同样的问题,后来瞎搞系统崩溃了,重装后正确安装了exiv2库,用的gcc还是7.5.0版本的,没有了编译错误,因祸得福吧

2.std::ifstream reader 不完整的类型

编译又出现了一个问题

/home/zzy/epnp_test/epnp.cpp:150:20: error: variable ‘std::ifstream reader’ has initializer but incomplete type
     ifstream reader("zuobiao-huawei.txt");

解决:少包含了一个库fstream
详细博客:https://blog.csdn.net/allenlinrui/article/details/19639241

编译通过!

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-10-21 12:43:55  更:2021-10-21 12:44:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/28 0:38:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码