我正在尝试为1.8版本构建Solar-System(C ++)Panda3D示例。我遇到的问题是,当我编译它时,我收到一个错误:
clr; g++ -c ./solar_system/tut_solar_system.cpp -o ss.o -fPIC -L/usr/lib/panda3d -I/usr/include/python2.7 -I/usr/include/panda3d
./solar_system/../p3util/cOnscreenText.h:75:22: error: ‘Colorf’ does not name a type
我已经尝试编辑该文件,包括glew,glext和glut(由我的发行版提供),以及Panda3D提供的“panda_glext” - 这些都没有提供ColorF。 (我正在使用archlinux,我有glew,glext和freeglut。)
我不知道从哪里开始寻找。谷歌让我失望了!有谁知道ColorF的定义在哪里?
答案 0 :(得分:2)
它被称为LColorf,它是LVecBase4f的typedef,它是四分量浮点值(如矢量和颜色)的通用Panda3D类。 'f'代表'浮动';还有一个LColord typedef。
这是Panda3D 1.8.0的变化。在1.8.0之前,它被称为Colorf(没有前导L)。据推测,您下载的示例程序是为早期版本设计的。您可以更改相关的示例程序以使用LColorf,或者您可以选择在包含这些标题之前添加以下内容:
#if PANDA_NUMERIC_VERSION >= 1008000
#define Colorf LColorf
#endif
(或者,如果您愿意,可以使用typedef。)
对于记录,要使LColorf符号可用的相应头文件是luse.h
。您不应该包含panda_glext.h
,它仅由OpenGL渲染器使用。