&引用/bin/sh:XX:找不到命令";尝试从github安装R fst包的开发版本时出错
我正在尝试从github安装的开发版本。(我想要开发版本,因为它在保存数据帧时维护列类,而当前发布的版本则没有。) 最初,由于缺少OpenMP支持,安装失败。我(我认为)通过遵循OSX上R3.4.0的步骤解决了这个问题 但是,现在我得到了以下错误:&引用/bin/sh:XX:找不到命令";尝试从github安装R fst包的开发版本时出错,r,linux,macos,clang,fst,R,Linux,Macos,Clang,Fst,我正在尝试从github安装的开发版本。(我想要开发版本,因为它在保存数据帧时维护列类,而当前发布的版本则没有。) 最初,由于缺少OpenMP支持,安装失败。我(我认为)通过遵循OSX上R3.4.0的步骤解决了这个问题 但是,现在我得到了以下错误:/bin/sh:XX:command-not-found。我已经在~/.R/Makevars文件中设置了适当的路径,因此我不确定下一步如何解决错误 以下是我的代码和输出: 在添加OpenMP支持之前,首次尝试安装fst devtools::instal
/bin/sh:XX:command-not-found
。我已经在~/.R/Makevars
文件中设置了适当的路径,因此我不确定下一步如何解决错误
以下是我的代码和输出:
在添加OpenMP支持之前,首次尝试安装fst
devtools::install_github("fstPackage/fst", ref = "develop")
*正在安装*source*包“fst”…**libs
clang++-std=gnu++11-I/Library/Frameworks/R.framework/Resources/include-DNDEBUG-fopenmp-I-Ifstcore-Ifstcore/LZ4-Ifstcore/ZSTD-Ifstcore/ZSTD/common-Ifstcore/ZSTD/decompress-Ifstcore/zstcore/R.framework/Versions/3.4/Resources/Library/Rcpp/include” -I/usr/local/opt/gettext/include-I/usr/local/opt/llvm/include-fPIC-Wall-g-O2-c FastStore.cpp-o FastStore.o
叮当声:错误:不支持的选项'-fopenmp'
make:**[FastStore.o]错误1
错误:包“fst”的编译失败 添加OpenMP支持
devtools::install_github("fstPackage/fst", ref = "develop")
为了添加OpenMP支持,我遵循了R3.4.0的步骤,包括从和使用提供的预构建OSX GUI安装程序安装gfortran 6.1
。然后,按照指示,我将以下内容添加到我的~/.R/Makevars
文件中:
CC=/usr/local/clang4/bin/clang
CXX=/usr/local/clang4/bin/clang++
CXX11=$CXX
CXX14=$CXX
CXX17=$CXX
CXX1X=$CXX
LDFLAGS=-L/usr/local/clang4/lib
第二次尝试安装fst
然后,我再次运行安装代码,并得到以下错误:
devtools::install_github("fstPackage/fst", ref = "develop")
*正在安装*source*包“fst”…**libs
XX-std=gnu++11-I/Library/Frameworks/R.framework/Resources/include -DNDEBUG-fopenmp-I.-Ifstcore-Ifstcore/LZ4-Ifstcore/ZSTD-Ifstcore/ZSTD/common-Ifstcore/ZSTD/decompress-Ifstcore/ZSTD/compress-I”/Library/Frameworks/R.framework/Versions/3.4/Resources/Library/Rcpp/include“ -I/usr/local/include-fPIC-Wall-g-O2-c FastStore.cpp-o FastStore.o
/bin/sh:XX:未找到命令
品牌:**[FastStore.o]
错误127错误:包“fst”的编译失败 除了错误之外,我可以看到安装输出在第一次尝试中以
clang++-std=gnu++11…
开头,在第二次尝试中以XX-std=gnu++11…
开头。我猜我需要告诉R(或其他程序)关于clangg
的路径,但我不确定需要什么路径,或者把它放在哪里(而且Makevars
文件不应该处理这个问题吗?),或者是否还有其他问题需要解决
以下是有关我的系统的一些详细信息:
Macbook Pro,OSX Sierra(版本10.12.5)
RStudio版本1.0.153
R会话信息
R version 3.4.1 (2017-06-30)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS Sierra 10.12.5
Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRlapack.dylib
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] httr_1.2.1 compiler_3.4.1 R6_2.2.2 tools_3.4.1 withr_1.0.2
[6] curl_2.8.1 memoise_1.1.0 git2r_0.19.0 digest_0.6.12 devtools_1.13.2
更新:根据@MarkPlotnick的评论,我将Makevars更改为以下内容:
CC=/usr/local/clang4/bin/clang
CXX=/usr/local/clang4/bin/clang++
CXX11=$(CXX)
CXX14=$(CXX)
CXX17=$(CXX)
CXX1X=$(CXX)
LDFLAGS=-L/usr/local/clang4/lib
这导致了以下错误:
devtools::install_github("fstPackage/fst", ref = "develop")
*正在安装源程序包“fst”…**libs/Users/eipi10/.R/Makevars:7:**递归变量“CXX”引用自身(最终)。停下来。
错误:包“fst”的编译失败
我遇到了这个问题,并根据@Dirk在中的评论找到了解决方案 我在.R/Makevars中显式设置了库:
CXX11=/usr/local/clang4/bin/clang++
CXX14=/usr/local/clang4/bin/clang++
CXX17=/usr/local/clang4/bin/clang++
CXX1X=/usr/local/clang4/bin/clang++
当我遇到这个问题时,这对我来说是有效的,尽管在我的Mac上,二进制文件的路径是
/Library/Developer/CommandLineTools/usr/bin/clang++
)我遇到了这个问题,并根据@Dirk in的评论找到了解决方案
我在.R/Makevars中显式设置了库:
CXX11=/usr/local/clang4/bin/clang++
CXX14=/usr/local/clang4/bin/clang++
CXX17=/usr/local/clang4/bin/clang++
CXX1X=/usr/local/clang4/bin/clang++
当我遇到这个问题时,这对我来说是有效的,尽管在我的Mac上,二进制文件的路径是
/Library/Developer/CommandLineTools/usr/bin/clang++
)我认为Makevars
更像是一个make文件。所以语法应该是cx11=$(CXX)
等等。在你写(和更新)问题的时间里,你可以把CXX=/usr/local/clang4/bin/clang++
行复制下来四次,然后再做四次其他的作业,这样你就有时间煮一杯好咖啡了。无论如何,我用VER=
(即当前为空),CCACHE=CCACHE
然后是CXX=$(CCACHE)g++$(VER)
和cx11=$(CCACHE)g++$(VER)
这很好。首先@DirkEddelbuettel,我喝茶,而且我喜欢喝浓茶,所以也许我有时间复制CXX=/usr/local/clang4/bin/clang++
只有一两次。其次,我只是模糊地了解Linux的运行情况,从源代码构建包并找出错误所在It’我的意思是,所以我只是按照我链接到的帖子中的说明去做。我将尝试你的建议,然后我会报告——在我煮了一杯浓茶之后,也就是说。或者像我在《我认为Makevars
更像一个make文件》中所说的那样明确定义CXX11、CXX17、CXX1X。因此语法应该是CXX11=$(CXX)
等。在你写(和更新)问题的时间里,你本可以将CXX=/usr/local/clang4/bin/clang++
行四次抄写其他四个作业,并且本可以有时间煮一杯好咖啡。值得一提的是,我使用VER=
(即当前为空),CCACHE=CCACHE
,然后是CXX=$(CCACHE)g++$(VER)
和cx11=$(CCACHE)g++$(VER)
,效果很好。首先@DirkEddelbuettel,我喝茶,而且我很喜欢茶,所以也许我有时间只抄一两遍