C++ ColorF:什么标题或库定义了ColorF?
我正在尝试为版本1.8构建太阳系(C++)Panda3D示例。我遇到的问题是,当我编译它时,我得到一个错误:C++ ColorF:什么标题或库定义了ColorF?,c++,panda3d,C++,Panda3d,我正在尝试为版本1.8构建太阳系(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’ do
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是在哪里定义的吗?它被称为LColorf,它是LVecBase4f的类型定义,LVecBase4f是四分量浮点值(如向量和颜色)的通用Panda3D类。“f”代表“浮动”;还有一个可用的LCO类型定义 这是Panda3D 1.8.0的一个变化。在1.8.0之前,它被称为Colorf(不带前导L)。您下载的示例程序大概是为早期版本设计的。您可以将相关示例程序更改为使用LColorf,也可以选择在包含这些标题之前添加以下内容:
#if PANDA_NUMERIC_VERSION >= 1008000
#define Colorf LColorf
#endif
(或者,如果您喜欢,也可以使用typedef。)
对于记录,使LColorf符号可用的适当头文件是
luse.h
。您不应该包括panda\u glext.h
,它仅由OpenGL渲染器使用。它是ColorF
还是ColorF
?它也可能是一个值,并在编译器需要类型的地方使用。如果您可以在错误发生的地方显示一些代码行,则更容易判断。有关标记的指南,请参阅。我错了:它是Colorf<代码>无效集(常量颜色F&fg);无效集(常量颜色和背景);空集_阴影(const Colorf&shadow);无效集\u阴影\u偏移量(常数LVecBase2f和偏移量);空集(帧)(const Colorf&frame);代码>非常感谢!我很困惑,因为我在研究文档时遇到了LVecBase4f,但我没有意识到我的项目跨越了版本。它建成了!