c - 扩展大型 C 编程项目 - 对各种函数的 undefined reference

标签 c eclipse gcc makefile configure

我希望扩展一个大型 C 编程项目 ( http://icecast.org/download/ ),使其具有一些附加功能。尽管我有一般的编程经验,但这是我第一次在 C 中进行任何事情并且遇到一些困难。

我决定在使用我自己的模块扩展 Icecast 项目时,我将首先在我自己的机器(Centos 6 和 Eclipse)上测试模块,一旦工作 - 我的意图是将更改集成到主 Icecast 项目中。

我的第一个集成是日志记录机制,它将简单消息保存到本地 MySQL 数据库,我已经成功地在我的机器上运行它。我将代码复制到 Icecast 项目的一个模块中,确保所有相关的包含都已声明。当尝试使用 ./configure 编译具有附加功能的 Icecast 时,make - 我收到以下错误:

client.o: In function `logSingleMessage':
/home/hearme/radio/src/client.c:283: undefined reference to `mysql_init'
/home/hearme/radio/src/client.c:297: undefined reference to `mysql_real_connect'
/home/hearme/radio/src/client.c:305: undefined reference to `mysql_query'
/home/hearme/radio/src/client.c:307: undefined reference to `mysql_error'
/home/hearme/radio/src/client.c:308: undefined reference to `mysql_close'
/home/hearme/radio/src/client.c:293: undefined reference to `mysql_error'
/home/hearme/radio/src/client.c:312: undefined reference to `mysql_close'

谁能解释为什么会这样?

谢谢

最佳答案

您报告的消息是链接器错误。它们表明您的程序试图调用指定的函数,但没有将它们的实现链接到它。应将适当的库添加到链接中,可能是 -lmysqlclient,但也可能是 -lmysqlclient_r。如何实现这一点在很大程度上取决于构建系统的细节。

关于c - 扩展大型 C 编程项目 - 对各种函数的 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33438683/

相关文章:

java - Springsource Tool Suite 找不到站点

c - 海湾合作委员会的输出

macos - 汇编语言中的数组访问

使用C将当前毫秒转换为时间格式

c# - case 标签的顺序对 switch 语句的效率有多大影响?

c - 如何在c中获取bmp图像的像素数据

eclipse - gradle 的内容辅助

java - 如何在两个项目之间共享代码?

linux - libgpsd.so : undefined reference to `bachk'

C 返回重复字符的数量