OSG踩坑总结
紀念配置OSG踩過的那些坑。。。
osg的配置攻略網上有好多,但是,很多關鍵問題不提!!!就產生了一堆坑!!!為了避免以后再踩坑,在這記錄一下。
1.OSG源代碼的編譯
現在編譯好的資源也很難找 ,資源總失效,而且為了適配自己的環境,難免得自己編譯下。網上攻略很多,就是cmake一下,但是一定要注意選擇x64!
好幾個攻略都提示注意vs版本,但沒人提示第二行要改成x64,不然后面vs無論win32還是x64都會沖突。
2.“osgViewer”: 不是類或命名空間名稱
這時候cmd能出現cow.osg,批生成也沒有報錯,但是osgViewer找不到。
關鍵問題在包含目錄!!!包含目錄要添加兩個!!!
網上都是默認包含目錄跟庫目錄都是一個,沒強調包含目錄要添加源代碼的include 和編譯后的include。
3.gl.h報錯
gl.h中用到了wingdi.h中定義的WINGDIAPI,網上說在頭文件最開始添加 #include <Windows.h>即可
但是我這還是有問題,得加三行
#include <windows.h>
#include <gl\gl.h> //OpenGL Header
#include <gl\glu.h> //GLu32 Header
而且,c++頭文件有順序!!!最后的順序是
#include “pch.h”
#include <windows.h>
#include <gl\gl.h> //OpenGL Header
#include <gl\glu.h> //GLu32 Header
#include <osgViewer/Viewer>
#include <osgDB/ReadFile>
4.“stdafx.h”
#include “stdafx.h”
示例代碼里都有這個頭文件,但2021年8月我這里頭文件是#include “pch.h”,需要改成這個頭文件,而且考慮到順序,放在首行。
最后放個測試代碼
#include "pch.h" #include <windows.h> #include <gl\gl.h> //OpenGL Header #include <gl\glu.h> //GLu32 Header #include <osgViewer/Viewer> #include <osgDB/ReadFile>int main(int argc, char **argv) {osgViewer::Viewer viewer;viewer.setSceneData(osgDB::readNodeFile("cow.osg"));return viewer.run(); }總結
- 上一篇: python 技巧视频教程_扣丁学堂Py
- 下一篇: C语言 链表输入输出数组