visual-studio - 如何将 OpenSceneGraph 库和包含正确链接到 Visual Studio?
问题描述
我正在尝试使用 Visual Studio Community 19 (16.7.3) 在 Windows 10 (Build 18363) 上运行 OSG 3.0 Beginner's Guide (Rui Wang, Xuelei Qian) 编译和构建第一个基本示例。代码如下所示:
#include <osgDBd/ReadFile>
#include <osgViewerd/Viewer> //the "d" is supposed to be there when in Debug solution configuration
int main(int argc, char** argv)
{
osgViewer::Viewer viewer;
viewer.setSceneData(osgDB::readNodeFile("cessna.osg"));
return viewer.run();
}
但错误消息是:
Error (active) E1696 cannot open source file "osgDBd/ReadFile"
Error (active) E1696 cannot open source file "osgViewerd/Viewer"
Error C1083 Cannot open include file: 'osgDBd/ReadFile': No such file or directory
所以我重新检查了我的解决方案属性,我在 OSG 的在线文档“使用 Visual Studio 编译”(链接器、C++ 属性……)以及我在 Windows 操作系统中的环境变量之后设置了这些属性。如果出现问题,推荐的 cmd 命令也无济于事。(我认为它不那么杂乱,省略了所有这些截图,但如果愿意,我当然可以上传它们)
我还将我的设置与这个答案进行了比较:如何将其他库添加到 Visual Studio 项目?,我也是这么想的。
我应该补充一点,我在与 Visual Studio 或 Windows 不同的驱动器上构建 OSG,但我认为正确设置环境变量应该没问题。
帮助将不胜感激。谢谢你。
解决方案
您是否设置了 %OSG_ROOT% ?
我不确定指南中的内容,但我的典型安装是将 Windows 环境变量 OSG_ROOT 设置为我的 Program Files (x86) 中的主 OpenSceneGraph 文件夹,然后将 $(OSG_ROOT)\include 添加到我的其他包含文件夹和$(OSG_ROOT)\lib 到我的其他库文件夹。
此外,看起来您正在使用的示例在文件夹名称中添加了一个“d” - 对于发布版本应该只是 osgDB/ReadFile 和 osgViewer/Viewer - 也许他们希望您构建调试库并添加这样的文件夹你的包括?我有一个单独的 lib 和 bin,但我不知道为什么他们需要一个单独的包含文件夹用于 Debug 和 Release,所以我的建议是从包含语句中删除 d,例如 osgDBd --> osgDB、osgViewerd --> osgViewer 等
不幸的是,OSG 解决方案中的示例应用程序引用了本地构建文件夹,而不是安装的文件夹,因此不能作为如何从其安装位置引用 OSG 的示例。但是,如果您可以从本地构建文件夹构建,您可以只使用示例之一中的项目设置。
推荐阅读
- python - 从字符串列表中获取整数的总和
- shell - 在多个服务器上运行命令的脚本
- buffer - vulkan pushConstant vs 统一缓冲区更新
- json - 错误类型错误:无法读取未定义的属性“日期/时间”
- machine-learning - 聚类算法的性能指标是什么?
- java - 如何在 jBPM 中查看自定义流程事件监听器的日志
- android-studio - 按钮为空对象引用(Android Studio)
- flutter - 如何在运行时创建两条线并计算它的颤动角度?
- c++ - MongoDB 中 javascript 函数的替代方案
- reactjs - 制作动态 crud 时是否可以使用 getStaticProps 方法?