Linux下VSCodium中使用<math.h>出现未定义引用错误求助
问题原因与解决方法
这不是系统缺少组件,而是gcc编译C代码时,数学库(libm)不会默认链接,必须手动指定-lm参数。你终端里生成目标文件的操作没问题,但还需完成链接步骤;另外VSCodium的默认编译配置没加这个参数,所以才会报错。
一、终端手动完成编译运行(临时解决)
你已经生成了目标文件new.o,接下来执行以下命令:
- 链接生成可执行文件:
gcc new.o -lm -o new
- 运行程序:
./new
二、配置VSCodium实现自动编译(永久解决)
修改VSCodium的编译任务配置,让每次编译自动添加-lm参数:
- 按下
Ctrl+Shift+P打开命令面板,输入Tasks: Configure Task,选择C/C++: gcc build active file。 - 在弹出的
tasks.json文件中,找到args数组,在末尾添加"-lm"参数。修改后的args示例:
"args": [ "-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}", "-lm" ],
- 保存文件后,重新编译运行代码,就不会再出现链接错误了。
内容的提问来源于stack exchange,提问作者Suvansh Rao
相关产品推荐
相关产品推荐

