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 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 第41节 osg和osgEarth编译中的找不到optimized.lib和debug.lib的问题 -> 正文阅读

[开发工具]第41节 osg和osgEarth编译中的找不到optimized.lib和debug.lib的问题

首先这不是一篇提供一个简单的方案的文章,文章会深入的解释为什么会出现这些情况,以让读可以应万变。

网络上提供比如类似的方案无法打开输入文件optimized.lib osgEarth2.8… 可能能够帮你正好的解决你这个问题,但是也可能解决不了,因为它只针对一种情况。

现象

之所以出现无法打开optimized.lib原因是CMAKE根据脚本对工程的依赖中有optimized.lib,不仅如此,比如我们使用osgEarth2.8的代码,直接cmake,会发现osgEarthFeatures工程的依赖是这样:
在这里插入图片描述
上述错误不但出现了optimized.lib debug.lib还把同一个库的debug和release都包进去了
在这里插入图片描述
同样下面的zlib也出现了都包进去的现象。

原因

在这里插入图片描述
对于protobuf和zlib库来说,他们有_DEBUG和_RELEASE的后缀,对于其它库来说,比如OSGVIEWER来说,只有_DEBUG,而RELEASE则默认是OSGVIEWER_LIBRARY

在CMAKE的脚本中针对同时有_DEBUG和_RELEASE的情况的判断不那么好,参见类似目录osgearth-osgearth-2.8\CMakeModules\OsgEarthMacroUtils.cmake:

其中的关键宏如下:
在这里插入图片描述
其中红色的代码是我新增的,原版的没有红色的代码,可以看到原版的代码没有针对同时定义了_DEBUG和_RELEASE的判断,原版逻辑是:
如果定义了_DEBUG,则就链接KaTeX parse error: Expected '}', got 'EOF' at end of input: {{varname}},这个串是一个即包含DEBUG也包含RELEASE的串如下:
在这里插入图片描述
而其它的库因为没有同时定义_DEBUG和_RELEASE,所以是正确的。
修改的逻辑也非常简单,如上上图不再缀述。

还有要注意的

CMAKE的命令是不区分大小写的,但是CMAKE的变量区分大小写,比如对于FindProtobuf.cmake而言,它把变量从小写变成了大小,以示统一都用大写,来适应其它脚本,但是它漏了_RELEASE版本的变量,这样也会导致系统认为没有_RELEASE,而上面说的脚本执行错误,下图就是FindProtobuf.cmake的截图,所有后缀是_RELEASE的变量都是我加进去的:
在这里插入图片描述
另外就是如果你更改了cmake下的脚本,这显然并不科学,正确的是你要在自己的工程里有对应脚本,这样代码拷到哪里都可以,你可以把CMAKE安装目录下的Find脚本拷到你的源码的对应目录下,但是要注意将里面的参考路径修改掉,否则会报找不到对应脚本,如下:
在这里插入图片描述
右侧的是CMAKE安装路径下的FIND脚本,它从当前路径下寻找SelectLibraryConfigurations.cmake,但是因为我们已经把FIND脚本拷到我们的源码路径下,而源码路径下并没有SelectLibraryConfigurations.cmake,因此也会报错如下:
在这里插入图片描述
如果看完了你还不知道怎么办,可以联系我:微信13324598743

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-06-01 15:24:57  更:2022-06-01 15:25:07 
 
开发: 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年5日历 -2024/5/18 12:05:59-

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