loop_apply.o:无法识别文件:无法识别文件格式
问题描述:
我正在尝试安装R
的plyr
程序包。以下是错误消息:loop_apply.o:无法识别文件:无法识别文件格式
* 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
文件在/opt/plyr/src
,从github.com/hadley/plyr。他们看起来像这样我的系统上:
[email protected]:/opt/plyr/src$ file *o
loop_apply.o: LLVM IR bitcode
RcppExports.o: ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV), not stripped
split-numeric.o: ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV), not stripped
答
在你不知道的情况下,-flto指定链接时优化,并已被R.加你是怎么解决这样的配置错误落得R安装?
添加-flto链接命令可能工作?或者从loop_apply编译行中删除它。如果其中任何一项工作,您需要修复您的R安装。
哈。通过忽略@ TonyFischetti的建议:http://www.onthelambda.com/2013/11/22/compiling-r-from-source-and-why-you-shouldnt-do-it/感谢DaBookshah。 – isomorphismes
我不知道如何更改安装过程(如更改编译行或链接器),但不使用'./configure --enable-lto'编译。我想这个问题提供了一个答案https://stackoverflow.com/questions/23736507/is-there-any-reason-why-not-to-use-link-time-optimization? – isomorphismes
*但编译时没有'./configure --enable-lto'解决它。 – isomorphismes