OSG开发环境配置指南及第一个OSG程序的详细步骤

2024-12-21 0 857

在编程领域,osg开源图形库对那些想制作图形软件的开发者来说,确实是个很有帮助的工具。然而,对于新手来说,配置它的开发环境以及编写第一个程序的过程,往往充满了挑战。

开发环境准备基础

OSG开发环境配置指南及第一个OSG程序的详细步骤

osg项目的开发需要依赖CMake这一功能强大的工具。CMake是一款支持多平台且开源的元构建系统,在C/C++项目的源码构建中应用广泛。许多大型C/C++项目都借助CMake来创建make、ninja等构建系统的脚本。在实际操作中,CMake会根据用户在.txt文件中编写的指令来构建工程。据数据显示,大约有60%的C++图形项目开发团队使用CMake等构建工具。我们必须认识到,从国内某大型开发公司的经验来看,正确运用构建工具可以显著提升开发效率。

OSG开发环境配置指南及第一个OSG程序的详细步骤

在VS安装过程中,容易出现问题。安装时,务必留意勾选的项目。特别是“用于的C++ CMake工具”和“MSVC V142 – VS 2019 C++ x64/x86生成工具”这两个选项。若要支持CMake项目,必须勾选“用于的C++ CMake工具”。而本文所用的osg库是经过编译的,还需兼容2019编译的库,因此还需勾选“MSVC V142 – VS 2019 C++ x64/x86生成工具”。

OSG开发环境配置指南及第一个OSG程序的详细步骤

OSG开发环境配置指南及第一个OSG程序的详细步骤

目录与实用工具文件放置

OSG开发环境配置指南及第一个OSG程序的详细步骤

在项目里,bin文件夹扮演着关键角色。它主要负责存放可执行的二进制文件,比如大家熟知的exe和dll文件。像“模型/场景查看器”和“格式转换工具”这样的实用工具,就是存放在这里的。这就像是一个存放各种工具的仓库。这些exe和dll文件是程序运行的基础。另外,还有一种特殊情况,当进行某些操作后,会发现某个目录下新增了“.vs”和“out”两个文件夹。这里的“.vs”文件夹主要用于生成VS的项目配置和缓存文件。这就像VS在为项目找一个专门的小房间来存放东西。而且这个“.vs”文件夹是由VS自动管理的,我们开发者基本上不用过多关注,甚至可以在关闭工程时将其删除,因为再次打开VS时,它会自动重新创建。

OSG开发环境配置指南及第一个OSG程序的详细步骤

#include 
int main(int argc, char** argv)
{
	std::cout << "Hello, osg!" << std::endl;
	return 0;
}

编译与运行设置

project("learn_osg_01")
add_executable(${PROJECT_NAME} main.cpp)

有了前面的准备工作,我们便可以开始编译并运行C++源代码了。对于熟悉C++项目的开发者来说,在VC++项目中利用图形界面来配置库是相当便捷的。在配置过程中,有一个关键指令,它指示编译器查找头文件的路径,需要将相关目录添加到属性设置中。在本例中,我们的目标是生成最终的exe文件,这由之前提到的特定指令来决定。此外,这里需要链接的库包括osgd.lib和另一个.lib库。完成这些设置后,CMake库的配置基本上就初步完成了。然而,有些开发新手可能会不小心遗漏某个步骤,这会导致程序无法编译或运行出错。在某个开发论坛上,就有许多这样的新手提出了类似的问题。

OSG开发环境配置指南及第一个OSG程序的详细步骤

编译过程中,需在VS界面的菜单里选择“生成”下的“全部生成”选项,随后VS将自动启动相应工具创建.exe文件。完成这一步后,轻点F5键即可启动调试。若操作无误,控制台将显示“Hello, osg!”这一表示操作成功的标志性信息。

project("learn_osg_01")

add_executable(${PROJECT_NAME} main.cpp)

CMake文件的进一步完善

include_directories("E:/osg/OpenSceneGraph-3.6.5-VC2019-64-Debug/include")

初步设置完毕后,为了便于项目的维护和优化,我们必须对CMake文件进行进一步优化。我们注意到,之前的指令中多次引用了osg库的根目录。为了提高效率,我们建议使用set指令将osg库的根目录设置为一个变量。这样一来,在后续的文件中,若需要再次使用该目录,只需直接引用这个变量即可。否则,若未采取此措施,在后续修改目录时,开发者将不得不逐一查找并修改所有引用该目录的地方,这无疑会带来极大的不便。

file指令是个实用工具。它能自动将源目录下的所有.dll文件复制到目标目录。只需在.txt文件里添加两条与这两个指令相关的指令,并保存,CMake便会自动执行文件复制。这样,当我们按下F5启动程序,离成功就又近了一些。

link_directories("E:/osg/OpenSceneGraph-3.6.5-VC2019-64-Debug/lib")

target_link_libraries(${PROJECT_NAME} 
	osgd
	osgViewerd
)

程序最终运行准备

在完成前期操作后,为了让程序顺畅且无误地执行,我们必须加入osgDB库。这好比为建筑增建支柱,若缺少此库,我们的osg程序将无法正常运行。此外,还需将插件库中的png文件读写插件dll文件复制到可执行文件所在的同一目录。若此步骤被忽略,png相关内容可能无法正确显示或处理,进而影响程序的视觉效果或数据处理。

project("learn_osg_01")
set(OSG_DIR "E:/osg/OpenSceneGraph-3.6.5-VC2019-64-Debug")
include_directories(${OSG_DIR}/include)
link_directories(${OSG_DIR}/lib)
add_executable(${PROJECT_NAME} main.cpp)
target_link_libraries(${PROJECT_NAME} 
	osgd
	osgViewerd
)

我想请教各位,在搭建osg开发环境或编写首个osg程序的过程中,大家面临的最大挑战是什么?期待大家在评论区交流心得,同时,也欢迎点赞并转发这篇文章。

#include 
#include 
int main(int argc, char** argv)
{
	std::cout << "Hello, osg!" << std::endl;
	osg::ref_ptr viewer = new osgViewer::Viewer;
	return viewer->run();
}

首个osg程序成功运行

完成所有步骤后,再按F5启动程序。若之前的设置和操作都准确无误,此时将出现一个全屏的osg窗口。这表明首个osg程序已顺利启动。从搭建开发环境到程序成功运行,尽管过程繁杂,但每一步都至关重要。这一过程让我们见证了osg程序从无到有的创作历程,包括对工具的熟练运用和对代码及文件处理的技巧。成功开发首个osg程序的开发者分享经验时表示,这就像穿越了一段充满挑战且收获颇丰的旅程。

OSG开发环境配置指南及第一个OSG程序的详细步骤

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

七爪网 行业资讯 OSG开发环境配置指南及第一个OSG程序的详细步骤 https://www.7claw.com/2804094.html

七爪网源码交易平台

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务