问题:升级之前,在 Ubuntu14.04 下,我只安装了默认的 JRE 和 JDK,以及 R 3.0.2(该版本 Ubuntu 的默认版本),然后成功运行R CMD javareconf
。
但是,自从升级到 14.10 并验证我拥有最新的 java7 JRE 和 JDK 后,尝试运行失败javareconf
并出现以下转储:
cellocgw@cellocgw-Studio-1747:~$ sudo R CMD javareconf
Java interpreter : /usr/bin/java
Java version : 1.7.0_65
Java home path : /usr/lib/jvm/java-7-openjdk-amd64/jre
Java compiler : /usr/bin/javac
Java headers gen.: /usr/bin/javah
Java archive tool: /usr/bin/jar
trying to compile and link a JNI progam
detected JNI cpp flags : -I$(JAVA_HOME)/../include
detected JNI linker flags : -L$(JAVA_HOME)/lib/amd64/server -ljvm
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -I/usr/lib/jvm/java-7-openjdk-amd64/jre/../include -fpic -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -g -c conftest.c -o conftest.o
In file included from conftest.c:1:0:
/usr/lib/jvm/java-7-openjdk-amd64/jre/../include/jni.h:39:19: fatal error: stdio.h: No such file or directory
#include <stdio.h>
^
compilation terminated.
/usr/lib/R/etc/Makeconf:133: recipe for target 'conftest.o' failed
make: *** [conftest.o] Error 1
Unable to compile a JNI program
JAVA_HOME : /usr/lib/jvm/java-7-openjdk-amd64/jre
Java library path:
JNI cpp flags :
JNI linker flags :
Updating Java configuration in /usr/lib/R
Done.
某些东西没有安装或不在“应该”在的地方。我尝试了类似问题中列出的大多数技巧(进行更新等),但到目前为止,我还没有发现文件stdio.h
丢失是错误消息的问题。
答案1
我想我已经解决了这种情况:
根据steeldriver的评论,我深入研究了软件中心并在安装中添加了几个“附加组件” gcc
。我怀疑添加其中一个libc6-dev
或其中gcc-multilib
一个就是我需要的。
R
关于可能对想要安装的用户感兴趣的相关说明JGR
:我必须安装 libpng12-dev
、libpng3
和中的至少一个才能获取要安装的libpng++dev
包(在中),这是安装所必需的。png
R
JGR