对scene_render的未定义引用
Undefined reference to scene_render
这是以下主要函数或我的程序
void scene_render(const struct Scene *s);
int main(void) { //leave main as is
struct Scene myScene;
scene_init(&myScene);
int keep_going = 1;
while (keep_going == 1) {
cons_clear_screen(); //clear off-screen display buffer
scene_render(&myScene); //render the scene to display buffer
cons_update(); //copy the display buffer to the display
cons_sleep_ms(ANIMATION_DELAY); //pause
scene_update(&myScene); //update the scene
int key = cons_get_keypress(); //see if the user has pressed a key
if (key != -1) {
keep_going = 0;
}
}
return 0;
}
void scene_render(Scene *s)
{
cons_clear_screen();
for(int i=0; i<NUM_PARTICLES; i++)
{
particle_render(&s->parts[i]);
}
}
当我在 Cygwin 上运行 makefile 命令时,它会传递错误并开始编译,但在点击 scene_render(&myScene(; 时遇到错误。它说对它的引用是未定义的。它引用函数中的变量,该变量是const结构,而调用&myScene的所有其他实例都只是结构体。知道问题可能是什么吗?本实验主要是关于使用指针(如果有帮助的话(。
程序(在外部函数的帮助下(应该在命令窗口周围生成和抛出随机颜色的像素,将它们弹回以保留在屏幕中。删除该问题会导致程序成功编译,但随后加载一个似乎不执行任何操作的空白窗口。
问题
跟
void scene_render(const struct Scene *s);
你承诺scene_render
将const struct Scene
作为参数。顺便说一下,您可以在此处放弃使用struct
。C++知道Scene
是一个struct
.
但是定义的函数是
void scene_render(Scene *s)
这需要一个普通的旧的,非const
Scene
,所以当链接器去寻找一个与承诺匹配的函数时,它找不到一个。
溶液
改变
void scene_render(Scene *s)
自
void scene_render(const Scene *s)
信守承诺。但要确保始终保持恒定的正确性。
相关文章:
- 对C宏的未定义引用,但在定义它时会出现重新定义错误
- 编译时的 CImg 库返回对"__imp_SetDIBitsToDevice"的未定义引用
- 对Py_Initialize()的未定义引用
- 使用mysql c++连接器的未定义引用
- 对 Scalar ::Scalar() 的未定义引用
- 对复制 CTOR 和 CTOR 的未定义引用
- 对显式实例化的模板函数的未定义引用
- TensorRT (C++ API) 对"createNvOnnxParser_INTERNAL"的未定义引用
- 2个模板化类的非模板友元函数未定义引用错误
- 编译 libfluid 样本控制器时对"event_base_del_virtual"的未定义引用
- 获取对function_name的未定义引用
- 对 'std::thread::_M_start_thread CMake 的未定义引用进行基准测试
- 对结构方法的未定义引用
- 使用内联函数 c++ 的未定义引用
- 对 CMake 中'cudaRegisterLinkedBinary'链接错误的未定义引用?
- 对 DLOPEN 的未定义引用
- QT C++中对全局变量的未定义引用
- 快速数学导致对"__pow_finite"的未定义引用
- 对 boost::system::d etail::system_category_instance 的未定义引用,从
- OpenCV 3.4.3 中对 'cv::String::d eallocate()' 错误的未定义引用