OSG常见错误
? ??錯誤1:
? ??Error1? ?? ???error?C2512:?'osg::MatrixTransform'?:?no appropriate default constructor available
? ? 或者Error2? ?? ???error?C2027:?use of undefined type 'osg::MatrixTransform'
? ? 這種錯誤屬于編譯錯誤。一般引起這種錯誤的原因是未包含相應的頭文件。
? ??解決方法:
? ? 添加相應的頭文件即可。比如上面的錯誤,添加#include<osg/MatrixTransform>即可。
? ??錯誤2:
? ??Error1? ?? ???error?LNK2019:?unresolved external symbol "__declspec(dllimport) public:?__thiscall FogControl::~FogControl(void)" (__imp_??? ? 1FogControl@@QAE@XZ) referenced in function "public:?void __thiscall CosgFreeViewer::OnOpenfog(void)" (?OnOpenfog@CosgFreeViewer@@QAEXXZ)? ?? ???osgFreeViewer.obj? ?? ???
? ? 這種錯誤屬于鏈接錯誤。一般引起這種錯誤的原因是未在項目的配置中添加相應的Lib庫文件。
? ??解決方法:
? ? VS2005下面:Project->properties->configuration properties->linker->command line添加FogControl.lib即可。
? ? 另一種方法:Project->properties->configuration properties->linker->input->additional dependencies添加FogControl.lib即可。
? ??錯誤3:
? ?這種錯誤屬于容器越界的錯誤。一般引起這種錯誤的原因是訪問了容器之外的內存。
? ? 例如下面的例子:
? ? m_point的類型是?osg::ref_ptr<osg::Vec3Array>
? ? std::vector <osg::Vec3> ::iterator??iter_end = m_point->end();
? ? iter_end++;
? ? 很顯然,iter_end指向了不該指向的地方。
? ??解決方法:
? ? 在進行迭代器操作時,注意指針的范圍,不要越界喲。
? ??錯誤4:
? ? 運行中出現的錯誤
? ? Unhandled exception at 0x100224a6 (pathtraveldll.dll) in First MFC.exe:?0xC0000005:? ???Access violation reading location 0x00000058.
? ? 這種錯誤屬于”野指針“的問題。一般引起這種錯誤的原因是:指針未進行初始化。
? ? 例如下面的例子:
? ? 你在類的聲明文件中定義了這樣一個變量
? ??osg::ref_ptr<osg::Vec3Array> m_point
? ? 但在類的構造函數中你忘記對其進行初始化,而在下面的語句中對其引用。
? ? m_point ->push_back (osg::vec3(0,0,0))
? ??解決方法:
? ? 在類的構造函數中或其他函數中一定要進行指針的初始化。貌似這是C++規定的,但編譯器卻找不出這樣的錯誤,只有自己在編程中注意了。
? ??錯誤5:
? ? 編寫DLL時無法同時生成DLL和LIB.
? ? 這種錯誤屬于粗心,一般是人為的因素。
? ? 錯誤原因:
? ? 1)類名前面未添加****_DLL
? ? 2).H文件中未添加
? ? #ifdef ****_DLL
? ? #else
? ? #define ****_DLL _declspec(dllimport)
? ? #endif
? ? 3).CPP文件中未添加
? ? #define ****_DLL _declspec (dllexport)
? ??解決辦法:
? ? 細心細心再細心,仔細檢查以上三條。
? ??錯誤6:
? ? DEBUG版本沒問題,RELEASE版本出現錯誤。
? ? 這種錯誤是鏈接庫的選取引起的。
? ??解決辦法:
? ? 在DEBUG時,選取的鏈接庫一般是***d.lib,多一個d字母。
? ? 在RELEASE是,選取的鏈接庫一般是***.lib,不帶d字母。
總結
- 上一篇: 海马玩获C轮3.6亿元投资 移动内容云计
- 下一篇: 计算机里的游戏怎么操作,怎么用手机玩电脑