在R 3.4.0中,
install.packages('RODBC', type='source')
在macOS 10.12.4上失败。我还从CRAN下载了RODBC_1.3-15.tar.gz
并尝试过,
R CMD INSTALL RODBC_1.3-15.tar.gz
在这两种情况下,我都找到了“找不到ODBC头sql.h和sqlext.h”。在Installation of RODBC/ROracle packages on OS X Mavericks对此进行的讨论说明如下:
要解决此问题,您需要下载最新版本的iODBC(www.iodbc.org),然后解压缩该文件并将标题和库搜索路径设置为放置解压缩包的位置。如果您不知道如何设置搜索路径,可以将头文件(
sql.h
和sqlext.h
)放在/usr/include
目录中,将libiodbc.a
文件放在/usr/lib
目录中。
我下载了iodbc-42.5.tar.gz
并将其解压缩到RODBC旁边的一个目录中,从RODBC_1.3-15.tar.gz
解压缩。遗憾的是,我找不到如何设置标题和库搜索路径,当我尝试将头文件放在/usr/include
中时,系统不会让我。
iodbc-42.5/iodbc/README.MACOSX
说,
您首先需要安装最新的Mac OS X开发人员包,可以在http://developer.apple.com/tools找到
我想我已经做到了,但我不知道如何检查它。 [事实上,我想我已经多次这样做了:消息ODBC headers sql.h and sqlext.h not found
,从对install.packages('RODBC', type='source')
的仍然负面反应中消失了一段时间,但在我成功安装port
并运行sudo port install gcc6
之后才重新出现。然后我又得到了ODBC headers sql.h and sqlext.h not found
。]
iodbc-42.5/iodbc/README.MACOSX
继续,
然后,您可以在
mac/iODBCinst
,mac/iODBC
,mac/iODBCtest
和mac/iODBCtestw
下打开Xcode Project Builder文件。
我不知道怎么找到这些。它继续,
或者从终端会话执行以下命令以构建所有框架和演示应用程序:
$ cd mac $ make
我做了$ cd mac
并得到了-bash: cd: mac: No such file or directory
。显然,我需要在这里替换mac
的东西,但我不知道是什么。 ???
谢谢。
我解决了这个问题:
ODBC_INCLUDE=/path/to/libiodbc-srcs/include R CMD INSTALL RODBC
其中“/ path / to / libiodbc-srcs / include”是包含缺失文件“include”文件夹的路径,“sql.h”和“sqlext.h”。在我的情况下,它类似于'〜/ Documents / Rstuff / iodbc-42.5 / iodbc / include',我在R中检查了以下内容:
dir('~/Documents/current/Rstuff/iodbc-42.5/iodbc/include')
然后以下为我工作:
ODBC_INCLUDE=~/Documents/current/Rstuff/iodbc-42.5/iodbc/include R CMD INSTALL RODBC
这在p。中有描述。 https://cran.r-project.org/web/packages/RODBC/vignettes/RODBC.pdf中的19个,除了包含一个流浪的引号(),因为我不熟悉那个语法而把它从我读过的前几次扔掉了。
在R-Sig-Mac上,Marc Schwartz提出了两个建议:第一,Installation of RODBC on OS X Yosemite,可能与“brew”一起工作;我没有尝试过,因为我先完成了上述工作。
第二:
install.packages("RODBC", type = "source",
configure.args = "--with-odbc-include=/path/to/libiodbc-srcs/include/")
这应该也适用于上面提到的路径替换。
我希望这有助于其他人。