编译C代码时未定义的引用

时间:2016-01-24 16:46:55

标签: c

我想在我的Ubuntu上使用SDL库编译一个C程序。

我从编译器中得到此错误:

Undefined reference to `SDL_FreeSurface'.

以及其他未定义的引用。

1 个答案:

答案 0 :(得分:2)

就像thurizas所说的那样,“未定义的引用”意味着链接器(编译器中将代码对象组合到最终程序中的部分)无法找到您使用的外部函数或变量。通常这意味着您忘记链接到库,或者您的链接器发现该库的版本错误。

在这种情况下,您应该在编译器命令行中添加“-lSDL2”,这意味着“与libSDL2.so链接”。这对另外 <#>包括头文件。默认情况下,只链接标准C库(libc.so)。