gpt4 book ai didi

r - 如何使用选项 -std=c99 安装 R 包

转载 作者:行者123 更新时间:2023-12-04 13:58:39 25 4
gpt4 key购买 nike

我在安装 plyr R 包时遇到问题,并收到以下错误:

Installing package into '/home/mousavian/R/x86_64-pc-linux-gnu-library/3.2'
(as 'lib' is unspecified)
* installing *source* package 'plyr' ...
** package 'plyr' successfully unpacked and MD5 sums checked
** libs
g++ -I/share/apps/R/lib64/R/include -DNDEBUG -I/usr/local/include -I"/home/mousavian/R/x86_64-pc-linux-gnu-library/3.2/Rcpp/include" -fpic -g -O2 -c RcppExports.cpp -o RcppExports.o
gcc -I/share/apps/R/lib64/R/include -DNDEBUG -I/usr/local/include -I"/home/mousavian/R/x86_64-pc-linux-gnu-library/3.2/Rcpp/include" -fpic -g -O2 -c loop_apply.c -o loop_apply.o
loop_apply.c: In function 'loop_apply':
loop_apply.c:15:3: error: 'for' loop initial declarations are only allowed in C99 or C11 mode
for(int i = 0; i < n1; i++) {
^
loop_apply.c:15:3: note: use option -std=c99, -std=gnu99, -std=c11 or -std=gnu11 to compile your code
make: *** [loop_apply.o] Error 1
ERROR: compilation failed for package 'plyr'
* removing '/home/mousavian/R/x86_64-pc-linux-gnu-library/3.2/plyr'
Warning message:
In install.packages("R packages/plyr_1.8.3.tar.gz", repos = NULL) :
installation of package 'R packages/plyr_1.8.3.tar.gz' had non-zero exit status

尝试通过 install.packages 命令从源安装 R 包时如何使用 -std=c99 选项?

谢谢

最佳答案

试试 C11 第一的

编译器错误告诉您选择 C99 C11 .因此,除非您有意编译遗留代码,否则请尝试 C11 第一的。您可以随时尝试旧版 C99 如果那不起作用。

使用 withr::with_makevars
为每个不直接从源代码编译的包编辑单个包 Makevars 或协调对 include/lib 目录的全局更改,对于 future 来说不是一个愉快的策略。不要那样做!编辑 R 的绝佳替代方案 make配置是使用 withr::with_makevars 操纵 Makevars仅用于安装命令:

library(withr)

with_makevars(c(PKG_CFLAGS = "-std=c11"),
install.packages("plyr", repos = NULL, type = "source"),
assignment = "+=")

另外,您可能已经拥有 withr安装,因为它是 devtools依赖性。

关于r - 如何使用选项 -std=c99 安装 R 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35198301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com