我开始进入c编程,并在cs50平台上进行了一系列讲座,由于我的互联网的一些问题,我认为下载库是有意义的,这样我可以在离线时处理问题集,之后下载库并将其包含在项目中make命令根本不起作用给我这个输出
cc main.c -o main /tmp/ccz5QZev.o:在函数
main': main.c:(.text+0x18): undefined reference to
中get_string'collect2: 错误:ld返回1退出状态:目标'main'的配方 失败了:*** [主要]错误1
get_string在#include“libcs50-develop / src / cs50.h”中定义,有人告诉我运行“cc main.c -lcs50 -o main”而不是“make”可以解决问题,建议确实有效,但我无法再次联系该人以找出原因。有人可以向我解释发生了什么吗?
答案 0 :(得分:1)
您的调用正在执行两个步骤,即编译和链接。
当链接器试图绑定标头cs50.h中声明的符号时,你得到的错误来自链接步骤
必须有一个库文件,也需要包含在编译中。
这似乎是你收到的建议,我同意。问题可能是链接器需要知道库“cs50”在路径中的位置。
这通常表示在进一步切换到链接器以告诉链接器库所在的位置。
对于gcc编译器,使用-L开关指示要搜索库的目录。 (see options)