R语言中GCC编译的问题(续)
这篇文章承接R语言中GCC编译的问题,这篇文章主要解决我在Linux系统上安装"expm"出现的问题。
这个问题非常的有趣,因为我在两台服务器分别安装同一个包,其中一台没有任何问题,而另一台则失败,尽管操作系统都是“CentOS Linux release 7.4.1708 (Core)”。不过我知道,一定还有一些差异我没有发现,有可能是R的版本不同,有可能是安装R所用的GCC版本不同,但是这种差异就算知道了也不像去解决,我可不想为了一个R包重装系统。
那么如何解决这个问题呢?策略就是手动安装了。
让我们先下载这个R包并解压
wget https://mirrors.tuna.tsinghua.edu.cn/CRAN/src/contrib/expm_0.999-2.tar.gz
tar xf expm_0.999-2.tar.gz
然后找到locale.h
中报错行, 也就是从libintl.h
中调用的dgettext
报错了
#include <R.h>
#ifdef ENABLE_NLS
#include <libintl.h>
#define _(String) dgettext ("expm", String)
#else
#define _(String) (String)
#endif
这个libintl.h
凭我本能的直觉我认为是应该是在/usr/include/
下, 使用VIM打开并查找"LC_MESSAGES"
...
/* We need LC_MESSAGES for `dgettext'. */
# include <locale.h>
...
这行代码告诉我们这个"LC_MESSAGES"在locale.h
下, 但是我发现在locale.h
里面是有定义的
/* These are the possibilities for the first argument to setlocale.The code assumes that the lowest LC_* symbol has the value zero. */
#define LC_CTYPE __LC_CTYPE
#define LC_NUMERIC __LC_NUMERIC
#define LC_TIME __LC_TIME
#define LC_COLLATE __LC_COLLATE
#define LC_MONETARY __LC_MONETARY
#define LC_MESSAGES __LC_MESSAGES
#define LC_ALL __LC_ALL
#define LC_PAPER __LC_PAPER
#define LC_NAME __LC_NAME
#define LC_ADDRESS __LC_ADDRESS
#define LC_TELEPHONE __LC_TELEPHONE
#define LC_MEASUREMENT __LC_MEASUREMENT
#define LC_IDENTIFICATION __LC_IDENTIFICATIO
于是我崩溃了。
突然间我灵机一闪,为啥不直接把这个定义添加到原来的locale.h
里呢? 于是我在locale.h
里增加了一行,改为
/* Localization */
#define LC_MESSAGES "en_US.UTF-8"
#include <R.h>
#ifdef ENABLE_NLS
#include <libintl.h>
#define _(String) dgettext ("expm", String)
#else
#define _(String) (String)
#endif
最后用R CMD INSTALL
安装
R CMD INSTALL expm/
顺利安装!
R语言中GCC编译的问题(续)相关推荐
- R语言中Sweave是用来做什么的?
R语言中Sweave是用来做什么的? 目录 R语言中Sweave是用来做什么的? R语言是解决什么问题的? R语言中Sweave是用来做什么的? 安利一个R语言的优秀博主及其CSDN专栏: R语言是解 ...
- 1071svm函数 r语言_如何利用R语言中的rpart函数建立决策树模型
决策树是根据若干输入变量的值构造出一个适合的模型,以此来预测输出变量的值,并用树形结构展示出来.决策树主要有两个类别:分类树和回归树.分类树主要针对离散的目标变量,回归树则针对连续的目标变量.R语言中 ...
- r语言中c函数错误,R语言中c()函数与paste()函数的区别说明
c()函数:将括号中的元素连接起来,并不创建向量 paste()函数:连接括号中的元素 例如 c(1, 2:4),结果为1 2 3 4 paste(1, 2:4),结果为"1 2" ...
- r语言中的shiny教程_如何使用Shiny在R中编写Web应用程序
r语言中的shiny教程 新年快乐! 这个月我忙于撰写一些较大的文章,因此请在接下来的几周内查找这些文章. 对于本月的Nooks和Crannies,我想简要指出一个我一直在用它进行自我教育的出色R库. ...
- R语言中if语句使用方法之超详细教程
在R语言中,if属于一种分支结构,即根据某个条件执行相关的语句.R中的if语句与else配合主要有3种结构. 单个if语句 if(cond) {expr} 其它语句 即当括弧中的cond条件为TRUE ...
- r语言中paste函数_R中的paste()函数-简要指南
r语言中paste函数 Using the paste() function in R will be straight and simple. In this tutorial let's see ...
- r语言中的while循环_R编程中的While循环
r语言中的while循环 In addition to the for loop we discussed earlier, R also offers another kind of loop to ...
- R语言中的igraph包绘制网络图
本文转自网络. R语言中的igraph包可以很方便地画出网络图,在社交关系分析等领域发挥重要作用,下面介绍包中一个重要的函数graph_from_data_frame(). graph_from_da ...
- 相关系数pearson、spearman、kendall和R语言中的cor/or.test()
相关系数pearson.spearman.kendall和R语言中的cor/cor.test 1. 相关系数pearson.spearman.kendall 2. R语言cor函数和cor.test函 ...
最新文章
- mysql 查询不使用索引_简单的mySQL查询不使用索引
- 让Windows下的Tomcat将控制台信息记录到日志
- android activity根节点addview_Activity问你4个问题,你敢回答吗?
- synchronized不能锁静态变量_多线程编程不可错过——彻底理解synchronized
- c++中#include“stdafx.h”
- 简单的相似图片搜索的原理
- Linux Oracle10g安装
- 查看mysql字段的编码_MySQL查看和修改字符编码的实现方法
- Uboot USB模式(RK3288变砖头的解决办法)
- C语言如何设计随机数
- linux下监控网络连接,Linux网络监控工具--netstat及网络连接分析
- mysql实战27 | 主库出问题了,从库怎么办?
- maven安装教程(保姆级别)
- t检验的p值对照表_第十讲 R-两独立样本t检验
- 不等缓和曲线计算公式及坐标?
- 下载图片 getInputStream、available()问题
- 能真正帮你实现沟通表达能力提升的书籍推荐:《沟通与说服必读12篇》
- matlab两幅图重叠,matlab两幅图叠在一起
- 分享一个超低功耗的4G智能模块
- office 2003打开错误,Microsoft office word遇到错误需要关闭
热门文章
- zabbix监控tomcat服务
- Python办公自动化(二)|从Excel到Word
- 利用css和js实现页面的标签效果。(标签个数可以动态变化)
- php asort,PHP asort() 函数
- 人工智能与python编程_人工智能用什么编程_python与人工智能编程
- 80端口未被占用,无法启动wamp的解决方法(原创)
- SpringBoot 启动失败 Failed to determine a suitable driver class 问题解决方案
- IDEA2019.3 双击启动无反应解决方法
- Android网络库的比较:OkHTTP,Retrofit和Volley [关闭]
- 通过wget在Linux上下载Java JDK会显示在许可证页面上