You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CS50课程第一周Linux环境C程序编译报错问题求助

报错根因

这个undefined reference to 'get_int'属于链接阶段错误:CS50库已经安装完成的前提下,报错是因为默认执行cc calculator.c -o calculator编译时,编译器不会自动链接CS50动态库,无法找到get_int等CS50专属函数的实现,最终链接失败。

解决方法

单次编译临时解决

编译命令末尾追加CS50库链接参数即可:

cc calculator.c -o calculator -lcs50

-lcs50参数的作用是告知链接器,编译时需要把libcs50库文件链接到生成的程序中。如果习惯用gcc/clang编译,只需要替换命令开头的编译器名,保留-lcs50参数即可。

永久配置免加参数

如果不想每次编译CS50相关代码都手动追加参数,可以配置shell别名,让编译器执行时自动带上链接参数:

  1. 打开当前用户的bash配置文件:
    nano ~/.bashrc
    
  2. 滑动到文件最末尾,添加两行别名配置:
    alias cc='cc -lcs50'
    alias gcc='gcc -lcs50'
    
  3. 按快捷键Ctrl+O,按回车确认保存路径,再按Ctrl+X退出编辑器,执行以下命令让配置立即生效:
    source ~/.bashrc
    

配置完成后,直接执行make calculator或者原生的cc编译命令,都不会再触发该链接错误。

异常排查

如果追加-lcs50参数后仍然报错,先验证CS50库是否被系统正确识别,执行命令:

ldconfig -p | grep cs50
  • 若输出包含libcs50.so的文件路径,说明库安装正常,检查编译命令的参数拼写即可
  • 若无任何输出,说明之前的CS50库安装未完成,先执行sudo apt install build-essential安装编译依赖,重新编译安装CS50库后,执行sudo ldconfig刷新系统库缓存即可。

内容的提问来源于stack exchange,提问作者Debede

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 20:03:39