尽管已安装unixODBC,但找不到sql.h头文件

27

我正在一台更新至Ubuntu 12.04系统上运行,已经安装了unixodbc(来自Ubuntu存储库的v2.2.14版本),MySQL及其相关驱动程序。同时还连接到有效的DSN,这通过发出isql DBName UName passwd指令进行验证。

我试图编译一个使用ODBC与数据库交互的C应用程序。几乎所有搜索结果都表明我应该在某个地方安装了"sql.h"。而find / -iname sql.h -print则显示我没有找到它。

所以我的问题是:它在哪里?安装时是否出现了问题(尽管没有报告错误)?您推荐采取哪些步骤?重新安装?从源代码编译(最新版本?)?

1个回答

65

您需要安装unixodbc-dev包以获取开发头文件。

sudo apt-get install unixodbc-dev

-dev 包含编译和构建需要使用这些头文件进行调用库的程序所需的必要标头文件。库文件本身将是常规包(如您的情况中的unixodbc)的一部分。

如果您想知道哪个软件包提供特定的文件,可以使用 apt-file

sudo apt-file update
sudo apt-file find sql.h

非常感谢Tuxdude。我知道这是一些相当琐碎的东西。还要感谢您提供有关apt-file的提示。使搜索更加容易。 - Richard
1
顺便提一下,对于未来查看此问题的用户,pkg-config 可以帮助找到相关的包含目录和编译时和链接时使用的库。请参阅手册获取更多详细信息。请注意,它必须“知道”它们的存在。来自仓库的库包通常被配置为以这样的方式安装,以便将详细信息告知 pkg-config - Richard
1
FYI,在Ubuntu 14.04上运行sudo apt-file find sql.h的结果包含以下行unixodbc-dev: /usr/include/sql.h - Ross Rogers
3
我在CentOS 7上遇到了相同的错误,并通过“yum install unixODBC *”解决了问题。参考链接为https://stat.ethz.ch/pipermail/r-help/2010-April/235867.html。 - Rγσ ξηg Lιαη Ημ 雷欧
仅供参考,类似的错误在这里报告:https://dev59.com/H10Z5IYBdhLWcg3whQsj#31360218,并且那里描述的解决方案也适用于AWS Elastic Beanstalk:sudo yum install unixODBC-devel - Diego Jancic

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接