把以前编译好的OSG运行库解压出来到C:\,启动VS2010编写一简单Win32控制台程序运行:
// TestOSG.cpp : 定义控制台应用程序的入口点。
//
#include <osgViewer/Viewer>
#include <osgDB/ReadFile>
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
osgViewer::Viewer viewer;
viewer.setSceneData( osgDB::readNodeFile( "cow.osg" ) );
return viewer.run();
}
按F7生成解决方案,出来一大堆错误,提示:
1>------ 已启动生成: 项目: TestOSG, 配置: Debug Win32 ------
1>生成启动时间为 2015-4-29 19:18:27。
1>InitializeBuildStatus:
1> 正在创建“Debug\TestOSG.unsuccessfulbuild”,因为已指定“AlwaysCreate”。
1>ClCompile:
1> 所有输出均为最新。
1> TestOSG.cpp
1>c:\documents and settings\administrator\my documents\visual studio 2010\projects\testosg\testosg\testosg.cpp(3): warning C4627: “#include <osgViewer/Viewer>”: 在查找预编译头使用时跳过
1> 将指令添加到“StdAfx.h”或重新生成预编译头
1>c:\documents and settings\administrator\my documents\visual studio 2010\projects\testosg\testosg\testosg.cpp(4): warning C4627: “#include <osgDB/ReadFile>”: 在查找预编译头使用时跳过
1> 将指令添加到“StdAfx.h”或重新生成预编译头
1>c:\documents and settings\administrator\my documents\visual studio 2010\projects\testosg\testosg\testosg.cpp(9): error C2653: “osgViewer”: 不是类或命名空间名称
1>c:\documents and settings\administrator\my documents\visual studio 2010\projects\testosg\testosg\testosg.cpp(9): error C2065: “Viewer”: 未声明的标识符
1>c:\documents and settings\administrator\my documents\visual studio 2010\projects\testosg\testosg\testosg.cpp(9): error C2146: 语法错误: 缺少“;”(在标识符“viewer”的前面)
1>c:\documents and settings\administrator\my documents\visual studio 2010\projects\testosg\testosg\testosg.cpp(9): error C2065: “viewer”: 未声明的标识符
1>c:\documents and settings\administrator\my documents\visual studio 2010\projects\testosg\testosg\testosg.cpp(10): error C2065: “viewer”: 未声明的标识符
1>c:\documents and settings\administrator\my documents\visual studio 2010\projects\testosg\testosg\testosg.cpp(10): error C2228: “.setSceneData”的左边必须有类/结构/联合
等等。
经过反复折腾后发现,是
#include <osgViewer/Viewer>
#include <osgDB/ReadFile>
的位置需要和
#include "stdafx.h"
的位置更换一下,变成:
// TestOSG.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <osgViewer/Viewer>
#include <osgDB/ReadFile>
int _tmain(int argc, _TCHAR* argv[])
{
osgViewer::Viewer viewer;
viewer.setSceneData( osgDB::readNodeFile( "cow.osg" ) );
return viewer.run();
}
就好了!