【发布时间】:2012-04-24 10:08:33
【问题描述】:
我在尝试将我的程序与 5.5 服务器提供的 MySQL 库链接时收到undefined reference to 'mysql_suchandsuch@#' 消息。安装 MySQL 时,我使用默认路径,在 Windows 上对我来说是 C:\Program Files\MySQL\MySQL Server 5.5\。最初,我认为空格引起了我的悲伤,但我认为我已经正确地找出了如何指向没有空格的库路径(仍然没有运气)。如果还有其他可能的原因,请告诉我。
我已经查看了该网站上的一系列问题,试图解决我的问题...
使用 mingw/g++,根据我自己的研究以及此处的建议,我尝试使用以下选项进行链接:
- -L"C:\Program Files\MySQL\MySQL Server 5.5\lib\" -llibmysql.lib
- -L"C:\Program Files\MySQL\MySQL Server 5.5\lib\" -lmysqlclient.lib
- -L"C:\Progra~1\MySQL\MySQLS~1.5\lib\"-llibmysql.lib
- -LC:\Progra~1\MySQL\MySQLS~1.5\lib\ -lmysqlclient.lib
- -L"C:\Progra~1\MySQL\MySQLS~1.5\lib\" -lmysql
在所有情况下,我都将-L/-l 选项放在语句的最右侧,据我所知,这很重要。
我已确认这些库确实存在。在 /lib 目录中,我有 libmysql.lib、mysqlclient.lib 和 libmysql.dll。我没有尝试与 .dll 链接,因为我审查过的教程/论坛都没有建议。
我没有使用 MAKEFILES。
有人对 g++/MySQL 有专门的经验吗?
【问题讨论】:
-
使用
dir /x这给出了每个文件夹的短名称。这样你就可以得到没有空格的库路径。 -
@Raam 这很有帮助。尽管使用 DOS 多年,但我从未学会过这个技巧……不幸的是,这似乎并没有解决我的库/链接器问题。