美文网首页OSG(OpenSceneGraph)
OSG 学习第一课:运行项目

OSG 学习第一课:运行项目

作者: sssssss_ | 来源:发表于2023-01-12 11:25 被阅读0次

一、搭建编译环境

我在网上找到一篇文章,按着步骤就能成功搭建:osg开发配置与第一个osg程序。大致步骤:

  1. 下载安装 VS2022
  2. 下载 osg3.6.5Vs2022X64 编译库
  3. 编写、编译并运行第一个 osg 程序

二、编译第一个 CMake C++程序

  • CMakeLists.txt 文件代码
project("learn_osg_01")
add_executable(${PROJECT_NAME} main.cpp)
  • main.cpp 文件代码
#include <iostream>
int main(int argc, char** argv)
{
    std::cout << "Hello, osg!" << std::endl;
    return 0;
}
  • 结果


    结果

三、编译第一个 OSG 程序

  • CMakeLists.txt 文件代码
#project()指令的作用是设置项目名称,并存放在变量PROJECT_NAME中,如果在顶层的CMakeLists.txt中调用此指令,会同时把项目名称存放在变量CMAKE_PROJECT_NAME中
project("learn_osg_01")

#我们要引入osg库,首先要告诉编译器库头文件的位置。在CMake中使用include_directories()指令实现。
set(OSG_DIR "E:\vs2022\osg3.6.5Vs2022X64")
include_directories(${OSG_DIR}/include)
link_directories(${OSG_DIR}/lib)

#add_executable()指令的作用是使用指定的源文件生成目标可执行文件,指令的第一个参数是要生成可执行文件(Windows系统中是exe文件)的名称,
#本例中会生成"learn_osg_01.exe",名字后边的参数是源文件列表,
#此例中目前只有一个源文件,即"main.cpp",如有多个源文件,要依次列在后边,用空格或换行隔开。
add_executable(${PROJECT_NAME} main.cpp)

#target_link_libraries()指令指定哪些库需要链接到目标上。本例的目标是最终要生成的exe文件,由上文中add_executable()指令指定,需要链接的库是osgd.lib和osgViewerd.lib。
target_link_libraries(${PROJECT_NAME} 
    osgd
    osgViewerd
    osgDBd
)

file(GLOB OSG_DLLS ${OSG_DIR}/bin/*.dll)
file(GLOB OSG_DLLS ${OSG_DIR}/bin/osgPlugins-3.6.5/*.dll)
file(COPY ${OSG_DLLS} DESTINATION ${CMAKE_BINARY_DIR})
  • main.cpp 文件代码
#include <osgViewer/Viewer>
#include <iostream>

int main(int argc, char** argv)
{
    std::cout << "Hello, osg!" << std::endl;
    osg::ref_ptr<osgViewer::Viewer> viewer = new osgViewer::Viewer;
    viewer->setUpViewInWindow(50, 50, 800, 600);
    return viewer->run();
}
  • 效果图
OSG效果

四、出现的问题

  1. 运行OSG时目标还不能正常运行,因为找不到动态链接库,只能手动添加;解决方法:由于找不到osg130-osgDBd.dll,无法继续执行代码。重新安装程序可能会解决问题

参考文章

相关文章

  • OSG 学习第一课:运行项目

    一、搭建编译环境 我在网上找到一篇文章,按着步骤就能成功搭建:osg开发配置与第一个osg程序[https://b...

  • OSG(OpenSceneGraph)安装

    本安装备忘参考: 【OSG学习笔记之一:】OSG+VS2010+win7 64位环境搭建 OSG安装步骤 1.下载...

  • 写在最前&OSG&OE常见问题汇总(V1.0)

    本文集介绍 目的帮助广大的初学者学习和使用OSG、OE。文章分为两类,一类是作者对OSG、OE的解读,二类是回答网...

  • 探究osg中的程序设计模式【目录】

    前序 探究osg中的程序设计模式---开篇 探究osg中的程序设计模式---创造性模式 探究osg中的程序设计模式...

  • OSG3.7.0+VS2017编译

    编译OSG3.7.0 编译过程参考Compiling with Visual Studio,需要的安装包可在osg...

  • 用JS打造一款记账App——Redux架构设计

    上一篇我们学习了构建一个react项目以及配置webpack并运行项目,这篇我们在引入redux之前学习它的运行机...

  • OSG+VS2012+win10环境搭建

    win10下OSG+VS2012环境搭建 一、相关准备 OSG源码当前版本:下载链接:OpenSceneGraph...

  • 3wwang的2019计划

    1、探究osg类生物----系列(35天)已完结 【置顶】探索未知种族之osg类生物【目录】​www.3wwang...

  • 一些Android基础

    1、运行别人的Android项目 学习最好的方法是运行别人的项目,站在巨人的肩膀上。不过因为现在Android开源...

  • 产品项目流程&故障处理

    第一课:产品项目流程 学习目标 1. 项目类型 2. 项目流程 3. 各项目在jira上的操作 4. 如何执行变更...

网友评论

    本文标题:OSG 学习第一课:运行项目

    本文链接:https://www.haomeiwen.com/subject/ilabcdtx.html