做OSG开发出现error C2653: “osgViewer”: 不是类或命名空间名称

把以前编译好的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();
}

就好了!


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值