使用SDL2与C语言开发射线投射迷宫时遇符号未定义编译错误
解决链接错误:undefined reference to 'cos@@GLIBC_2.2.5'
问题原因
cos、sin这类数学函数属于GNU数学库(libm),GCC编译时不会自动链接该库,必须显式指定链接参数,错误提示本质是未链接数学库,而非libm.so.6文件缺失。
修正后的编译命令
在原编译命令末尾添加-lm参数,显式链接数学库:
gcc -Wall -Wextra -Werror -pedantic main.h main.c sdl.c raycast.c input.c -lSDL2 -lm -o movement
额外注意事项
- 确保代码中已正确包含
<math.h>头文件,避免出现编译警告或隐含的未定义行为; - Ubuntu 14.04.6默认已预装libm库,无需手动安装。
内容的提问来源于stack exchange,提问作者Ornelle
相关产品推荐
相关产品推荐

