使用R语言安装包编译时gcc标准报错——“error: for loop initial declarations are only allowed in C99 mode”

使用BiocManager安装R包时gcc标准报错

使用BiocManager安装Biostrings包的时候报错了:

BiocManager::install("Biostrings",force=TRUE)

attachments-2024-01-QpFwIzPJ65b31428b08f1.png报错信息提示是gcc标准的问题,应该使用C99标准,可以使用withr包指定使用标准:

with_makevars(c(PKG_CFLAGS = "-std=c99"),
+ BiocManager::install("Biostrings",force=TRUE),
+ assignment = "+=")

"+="会将Makevars文件中的现有变量分配给 PKG_CFLAGS,使用单纯的"="可能会对现有变量进行覆盖,如果家目录下没有Makevars文件可以进行创建:

mkdir .R
vi Makevars

然后在Makevars文件中键入:

CC = gcc -std=c99

然后重启R,就可以直接以c99标准编译R包,直接安装:

BiocManager::install("Biostrings",force=TRUE)

但是这种方法会改变gcc标准的全局变量,如果只是安装单个R包还是建议第一个方法。

参考内容:https://stackoverflow.com/questions/35198301/how-use-the-option-std-c99-for-installing-r-packages

  • 发表于 2024-01-26 10:52
  • 阅读 ( 692 )
  • 分类:R

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
每天学习一点点
每天学习一点点

45 篇文章

作家榜 »

  1. omicsgene 694 文章
  2. 安生水 341 文章
  3. Daitoue 167 文章
  4. 生物女学霸 120 文章
  5. 红橙子 78 文章
  6. xun 77 文章
  7. rzx 74 文章
  8. CORNERSTONE 72 文章