loop_apply.o:文件无法识别:无法识别文件格式

时间:2017-09-06 21:15:33

标签: r linux build clang plyr

我正在尝试安装R的{​​{1}}包。以下是错误消息:

plyr

* installing *source* package ‘plyr’ ... ** package ‘plyr’ successfully unpacked and MD5 sums checked ** libs clang++ -I/opt/R-3.4.1/include -DNDEBUG -I"/home/isomorphismes/R/i686-pc-linux-gnu-library/3.4/Rcpp/include" -I/usr/local/include -fpic -I/opt/boost_1_61_0/boost -c RcppExports.cpp -o RcppExports.o clang -I/opt/R-3.4.1/include -DNDEBUG -I"/home/cd/R/i686-pc-linux-gnu-library/3.4/Rcpp/include" -I/usr/local/include -fpic -g -O2 -flto -c loop_apply.c -o loop_apply.o clang++ -I/opt/R-3.4.1/include -DNDEBUG -I"/home/isomorphismes/R/i686-pc-linux-gnu-library/3.4/Rcpp/include" -I/usr/local/include -fpic -I/opt/boost_1_61_0/boost -c split-numeric.cpp -o split-numeric.o clang++ -shared -L/usr/local/lib -o plyr.so RcppExports.o loop_apply.o split-numeric.o loop_apply.o: file not recognized: File format not recognized clang: error: linker command failed with exit code 1 (use -v to see invocation) /opt/R-3.4.1/share/make/shlib.mk:6: recipe for target 'plyr.so' failed make: *** [plyr.so] Error 1 ERROR: compilation failed for package ‘plyr’ * removing ‘/home/cd/R/i686-pc-linux-gnu-library/3.4/plyr’ 文件位于*.o,来自github.com/hadley/plyr。它们在我的系统上看起来像这样:

/opt/plyr/src

2 个答案:

答案 0 :(得分:1)

如果您不知道,-flto指定了链接时间优化,并且已被R添加。您是如何设法最终安装错误配置的R?

在链接命令中添加-flto可能有效吗?或者从loop_apply编译行中删除它。如果其中任何一个有效,则需要修复R安装。

答案 1 :(得分:0)

使用clang使用-flto进行编译需要(在Ubuntu上)安装llvm-dev软件包。否则,链接器将无法处理-flto个目标文件。

apt-get install clang-10 llvm-10-dev

现在链接应该成功了。