2010-11-20 75 views
0

无法在gcc版本4.1.2上编译c程序20080704(Red Hat 4.1.2-48)未定义符号:mysql_options问题

我该怎么办?

谢谢。

+3

请更具体一些,并提供一些细节/代码。我相信你在这里遇到了一个实际问题,看到这个问题关闭,这将是一件耻辱。 – casablanca 2010-11-20 18:24:21

回答

1

你可以做的一件事是提供更多的信息:)
这里的典型例子是你错过了来自其他软件包的include文件,可能位于/ usr/lib/include或/ usr/local/lib /包括。无论哪种方式编译器不知道“mysql_options”的含义。

0

未定义的符号通常是在最终链接阶段无法解析的函数或变量。

最常见的原因是未能将包含它们的目标文件或共享库添加到编译器/链接器选项。例如,如果共享库是libtest.so,则需要向gcc添加-ltest选项,该选项通常用于在许多系统上进行链接,而不是直接使用ld。

在许多其他情况下,链接程序无法找到所述库,因为库搜索路径(gcc中的-L选项)没有正确设置以允许链接程序找到这些库。但是,在这种情况下,链接器将输出一条关于无法找到指定库的单独错误消息。

另一个不太常见的原因是使用带有与实际共享库不同步的条件部分的头文件。作为一个例子,设想在库的头文件中使用unicode版本的函数,而实际的共享库对象没有unicode支持,因此不包含这些函数。

就你而言,mysql_options符号位于libmysqlclient和libmysqlclient_r库中。您应该检查导致错误的命令行并查看是否有任何连接。

如果您需要更多帮助,但您应该向我们提供上述命令行,确切的错误消息和一些关于你想要编译的信息。