OSG 學(xué)習(xí)第一課:運(yùn)行項(xiàng)目

一、搭建編譯環(huán)境

我在網(wǎng)上找到一篇文章,按著步驟就能成功搭建:osg開發(fā)配置與第一個(gè)osg程序。大致步驟:

  1. 下載安裝 VS2022
  2. 下載 osg3.6.5Vs2022X64 編譯庫
  3. 編寫、編譯并運(yùn)行第一個(gè) osg 程序

二、編譯第一個(gè) 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;
}
  • 結(jié)果


    結(jié)果

三、編譯第一個(gè) OSG 程序

  • CMakeLists.txt 文件代碼
#project()指令的作用是設(shè)置項(xiàng)目名稱,并存放在變量PROJECT_NAME中,如果在頂層的CMakeLists.txt中調(diào)用此指令,會(huì)同時(shí)把項(xiàng)目名稱存放在變量CMAKE_PROJECT_NAME中
project("learn_osg_01")

#我們要引入osg庫,首先要告訴編譯器庫頭文件的位置。在CMake中使用include_directories()指令實(shí)現(xiàn)。
set(OSG_DIR "E:\vs2022\osg3.6.5Vs2022X64")
include_directories(${OSG_DIR}/include)
link_directories(${OSG_DIR}/lib)

#add_executable()指令的作用是使用指定的源文件生成目標(biāo)可執(zhí)行文件,指令的第一個(gè)參數(shù)是要生成可執(zhí)行文件(Windows系統(tǒng)中是exe文件)的名稱,
#本例中會(huì)生成"learn_osg_01.exe",名字后邊的參數(shù)是源文件列表,
#此例中目前只有一個(gè)源文件,即"main.cpp",如有多個(gè)源文件,要依次列在后邊,用空格或換行隔開。
add_executable(${PROJECT_NAME} main.cpp)

#target_link_libraries()指令指定哪些庫需要鏈接到目標(biāo)上。本例的目標(biāo)是最終要生成的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效果

四、出現(xiàn)的問題

  1. 運(yùn)行OSG時(shí)目標(biāo)還不能正常運(yùn)行,因?yàn)檎也坏絼?dòng)態(tài)鏈接庫,只能手動(dòng)添加;解決方法:由于找不到osg130-osgDBd.dll,無法繼續(xù)執(zhí)行代碼。重新安裝程序可能會(huì)解決問題

參考文章

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容