我正在尝试在 Mountain Lion 10.8.2 上安装 PL/R,我已经从 r-project 安装了 R 2.15.3,从 KyngChaos 安装了 PostgreSQL 9.1。我从http://www.joeconway.com/plr/获得了 PL/R 8.3.0.14 。我已将展开的文件夹放入 /usr/local/pgsql/share/contrib 并 cd'd 进入该文件夹。
环境变量 $R_HOME 和 $CUSTOM_COPT 按照http://www.joeconway.com/web/guest/pl/r/-/wiki/Main/Installation_Mac中的说明设置,将它们写入 .bash_profile,并添加 /library /frameworks/r.framework/resources/bin 通过写入同一个文件到我的路径。
XCode 4.6 和命令行工具已安装。标准 C 头文件有多个副本,包括 stdio.h,例如 /usr/include/stdio.h。
下一步似乎是:
DiMac:plr duncan$ make
Makefile:40: ../../src/Makefile.global: No such file or directory
Makefile:41: /contrib/contrib-global.mk: No such file or directory
make: *** No rule to make target `/contrib/contrib-global.mk'. Stop.
那没有用,然后我尝试:
DiMac:plr duncan$ make USE_PGXS=1
gcc -Os -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.6.sdk -D_FILE_OFFSET_BITS=64 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wformat-security -fno-strict-aliasing -fwrapv -arch x86_64 -I"." -I"-I/library/frameworks/r.framework/resources/include" -I/library/frameworks/r.framework/resources/include -I. -I. -I/usr/local/pgsql-9.1/include/server -I/usr/local/pgsql-9.1/include/internal -I/usr/include/libxml2 -DPKGLIBDIR=\"/usr/local/pgsql-9.1/lib\" -DDLSUFFIX=\".so\" -DR_HOME_DEFAULT=\"/library/frameworks/r.framework/resources\" -c -o plr.o plr.c
In file included from /usr/local/pgsql-9.1/include/server/postgres.h:47,
from plr.h:38,
from plr.c:33:
/usr/local/pgsql-9.1/include/server/c.h:67:19: error: stdio.h: No such file or directory
/usr/local/pgsql-9.1/include/server/c.h:68:20: error: stdlib.h: No such file or directory
...
然后页面更多的错误。
在我看来,make在错误的位置寻找标准头文件并且找不到它们。从我的阅读来看,该标志似乎是在-isysroot
告诉gcc通过预先添加正常搜索路径来查找头文件使用/developer.../macosx10.6.sdk
路径,并且我的机器上不存在此路径,我认为这是当前 Xcode 版本的标准。
所以,问题:
这个标志是由 /plr 中的Makefile以某种方式设置的,还是在其他地方设置的?无论哪种方式,我如何更改它以使make找到它需要的头文件?如果改变它确实是正确的做法?