Visual studio 如何将OpenSceneGraph库和Include正确链接到Visual Studio?

Visual studio 如何将OpenSceneGraph库和Include正确链接到Visual Studio?,visual-studio,linker-errors,openscenegraph,Visual Studio,Linker Errors,Openscenegraph,我正在尝试编译和构建OSG3.0初学者指南中的第一个基本示例(王睿,钱学磊),该指南使用Visual Studio Community 19(16.7.3)在Windows 10(build 18363)上运行。 代码如下所示: #include <osgDBd/ReadFile> #include <osgViewerd/Viewer> //the "d" is supposed to be there when in Debug solution

我正在尝试编译和构建OSG3.0初学者指南中的第一个基本示例(王睿,钱学磊),该指南使用Visual Studio Community 19(16.7.3)在Windows 10(build 18363)上运行。 代码如下所示:

#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();
}
<> P>所以我重新检查了我的解决方案属性,我在OSG的在线文档“VisualStudio编译”(林克尔,C++属性,…)以及我的Windows环境中的环境变量之后设置了这些属性。 如果出现故障,建议使用的cmd命令也没有帮助。 (我认为省去了所有的屏幕截图就不那么凌乱了,但如果愿意的话,我当然可以上传它们)

我还将我的设置与这个答案进行了比较,我认为答案是一样的

我应该补充一点,我在一个独立的驱动器上构建了OSG,而不是VisualStudio或Windows,但我认为正确设置环境变量应该是可以的

非常感谢您的帮助。
谢谢。

您设置了%OSG\u ROOT%了吗

我不确定指南中有什么内容,但我的典型安装是将Windows环境变量OSG_ROOT设置为程序文件(x86)中的主OpenSceneGraph文件夹,然后将$(OSG_ROOT)\include添加到我的其他include文件夹中,并将$(OSG_ROOT)\lib添加到我的其他库文件夹中

此外,您正在使用的示例似乎在文件夹名称中添加了一个“d”-对于发布版本,应该是osgDB/ReadFile和osgViewer/Viewer-也许他们希望您构建调试库并为您的包含添加这样的文件夹?我得到了一个单独的lib和bin,但我不知道为什么他们想要一个单独的include文件夹用于Debug和Release,所以我的建议是从include语句中删除d,例如osgDBd-->osgDB、osgViewerd-->osgViewer等


不幸的是,OSG解决方案中的示例应用程序引用的是本地构建文件夹,而不是已安装的文件夹,因此不会作为如何从其安装位置引用OSG的示例。但是,如果您可以从本地build文件夹进行构建,您可以使用其中一个示例中的项目设置。

自从提出这个问题以来,我已经转到Ubuntu,但我会确保很快检查它。至于用于调试版本的“d”,我现在不应该回顾它。然而,无论是否包含“d”,都没有区别。
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