- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我无法在使用新 M1 和 arm64 架构的 Macbook Pro(运行 MacOS Monterey)上安装 R 包 stringi
。 SO 上有许多描述类似问题的帖子,但我收到的错误消息是我以前从未见过的。
当我在 RStudio 中运行 install.packages("stringi")
时,我收到以下错误消息:
stri_brkiter.cpp:60:9: error: use of undeclared identifier
'isNull'
if (isNull(opts_brkiter)) {
^
我猜这里发生了某种编译器不匹配——不应该有来自 CRAN 包的“未声明的标识符”错误。不过,我不确定如何解决这个问题,而且我无法在网上找到其他人收到类似消息的任何示例。我在网上见过 很多 类似的错误,但是对这些错误的修复并没有帮助我解决这个 isNull()
错误。
注意:以上几行只是消息输出的错误部分。请参阅下面的完整错误文本。
> install.packages("stringi")
Installing package into ‘/Users/<username>/r_libs’
(as ‘lib’ is unspecified)
Package which is only available in source form, and may need
compilation of C/C++/Fortran: ‘stringi’
Do you want to attempt to install these from sources? (Yes/no/cancel) yes
installing the source package ‘stringi’
Content type 'application/x-gzip' length 7578882 bytes (7.2 MB)
==================================================
downloaded 7.2 MB
* installing *source* package ‘stringi’ ...
** package ‘stringi’ successfully unpacked and MD5 sums checked
** using staged installation
checking for R_HOME... /Library/Frameworks/R.framework/Resources
checking for R... /Library/Frameworks/R.framework/Resources/bin/R
checking for endianness... little
checking for R >= 3.1.0 for C++11 use... yes
checking for R < 3.4.0 for CXX1X flag use... no
checking for cat... /bin/cat
checking for local ICUDT_DIR... icu69/data
checking for gcc... clang -arch arm64
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether clang -arch arm64 accepts -g... yes
checking for clang -arch arm64 option to accept ISO C89... none needed
checking how to run the C preprocessor... clang -arch arm64 -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... rm: conftest.dSYM: is a directory
rm: conftest.dSYM: is a directory
yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking elf.h usability... no
checking elf.h presence... no
checking for elf.h... no
checking whether we are using the GNU C++ compiler... yes
checking whether clang++ -arch arm64 -std=gnu++11 accepts -g... yes
checking whether the C++ compiler supports the long long type... yes
checking whether the compiler implements namespaces... yes
checking whether the compiler supports Standard Template Library... yes
checking whether std::map is available... yes
checking for pkg-config... /opt/homebrew/bin/pkg-config
checking with pkg-config for the system ICU4C... 70.1
checking for ICU4C >= 55... yes
checking for additional required CPPFLAGS, LDFLAGS, and LIBS... done
checking whether an ICU4C-based project can be built... yes
checking programmatically for sufficient U_ICU_VERSION_MAJOR_NUM... yes
checking programmatically if U_CHARSET_IS_UTF8 is defined and set... yes
checking the capabilities of the ICU data library (ucnv, uloc, utrans)... yes
checking the capabilities of the ICU data library (ucol)... yes
configure: creating ./config.status
config.status: creating src/Makevars
config.status: creating src/uconfig_local.h
config.status: creating src/install.libs.R
*** stringi configure summary:
ICU_FOUND=1
STRINGI_CXXSTD=CXX_STD=CXX11
STRINGI_CFLAGS= -fPIC
STRINGI_CPPFLAGS=-I. -I/opt/homebrew/Cellar/icu4c/70.1/include -UDEBUG -DNDEBUG
STRINGI_CXXFLAGS= -fPIC
STRINGI_LDFLAGS=-L/opt/homebrew/Cellar/icu4c/70.1/lib
STRINGI_LIBS=-licui18n -licuuc -licudata
*** Compiler settings used:
CC=clang -arch arm64
LD=clang++ -arch arm64 -std=gnu++14
CFLAGS=-falign-functions=64 -Wall -g -O2 -fPIC
CPPFLAGS=-I/opt/R/arm64/include -UDEBUG -DNDEBUG
CXX=clang++ -arch arm64 -std=gnu++11
CXXFLAGS=-falign-functions=64 -Wall -g -O2 -fPIC
LDFLAGS=
LIBS=
** libs
clang++ -arch arm64 -std=gnu++11 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I. -I/opt/homebrew/Cellar/icu4c/70.1/include -UDEBUG -DNDEBUG -I/opt/R/arm64/include -fPIC -fPIC -falign-functions=64 -Wall -g -O2 -c stri_brkiter.cpp -o stri_brkiter.o
stri_brkiter.cpp:60:9: error: use of undeclared identifier
'isNull'
if (isNull(opts_brkiter)) {
^
stri_brkiter.cpp:130:9: error: use of undeclared identifier
'isNull'
if (isNull(opts_brkiter)) {
^
stri_brkiter.cpp:171:9: error: use of undeclared identifier
'isNull'
if (isNull(opts_brkiter)) {
^
3 errors generated.
make: *** [stri_brkiter.o] Error 1
ERROR: compilation failed for package ‘stringi’
* removing ‘/Users/<username>/r_libs/stringi’
* restoring previous ‘/Users/<username>/r_libs/stringi’
The downloaded source packages are in
‘/private/var/folders/qc/whkk090506v2qjy698yf25m80000gq/T/RtmpvLUDID/downloaded_packages’
Warning message:
In install.packages("stringi") :
installation of package ‘stringi’ had non-zero exit status
我尝试在 R Studio 和命令行中安装 stringi
,一些 SO 帖子建议这可能更有效,但我通过这两种方法收到相同的错误。
最初,编译器无法找到 ICU4C 库(这也阻止了我安装 stringi
),但我能够将 pkg-config
指向该库通过运行 brew link icu4c --force
并解决了它。
我尝试过的其他命令(没有修复它):
install.packages('stringi', configure.args='--disable-cxx11')
install.packages("stringi", configure.args = "--with-extra-cxxflags='--std=c++11'")
完全删除我的 Makevars
文件并没有解决问题。
我在 SO 和 Github 上查看了许多主要/热门的相关问题(包括 this 、 this 、 this 、 this 、 this 等)。不过,我认为我已经达到了对这些东西的理解边缘。
我公认的非专家假设是,这与我下载的编译器、我完成的 M1 架构解决方法和/或我的 Makevars 文件有关,因为我安装了 stringi
在以前的(较旧的)Macbook 上没有任何问题。
系统信息:
Homebrew
安装了 gcc
/gfortran
和其他库,并将下载位置添加到 $PATH我的 Makevars
文件:
此文件是根据 here 的建议构建的, here , here , 和 here .
CC=/opt/homebrew/bin/gcc-11
CXX=/opt/homebrew/bin/g++-11
FC=/opt/homebrew/bin/gfortran-11
F77=/opt/homebrew/bin/gfortran-11
FLIBS=-L/opt/homebrew/opt/gfortran/lib -lgfortran -lquadmath -lm
CFLAGS=-I/opt/homebrew/include
CXXFLAGS=-O3 -Wall -pipe -Wno-unused -pedantic
CXX11FLAGS=-O3 -Wall -pipe -Wno-unused -pedantic
这个错误对任何人来说都很眼熟,或者有人对我下一步可以做什么来解决这个问题有建议吗?我已经尝试了很多解决方法,所以如果我遗漏了任何内容,我深表歉意,如果有任何其他信息可能有用,请告诉我!
谢谢!
最佳答案
除非您绝对需要源代码编译版本,否则目前有一个二进制 arm 版本。 (显然以后的人需要改版本号)
install.packages("https://cran.r-project.org/bin/macosx/big-sur-arm64/contrib/4.1/stringi_1.7.6.tgz",
repos = NULL, type = .Platform$pkgType)
我想知道在您尝试此操作时 Rstudio 的默认存储库是否在这方面不完整?
关于r - 无法在 MacOS M1 Monterey 上安装 stringi R 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72524621/
我正在尝试完成一些绘图,但不幸的是它会产生此错误以及一个空白窗口: ggplot(dt, aes(B, C),) + geom_point() + facet_grid(. ~ A) Error in
我正在使用 RStudio 在远程服务器上工作。此服务器无法访问 Internet。我想安装包“stringi”。我看过这个 tackoverflow article ,但是每当我使用命令时 inst
我最近开始处理自定义序列化/反序列化:https://stackoverflow.com/a/63846824/129805 我只想对JSON和RON使用此自定义的“字符串式”序列化(和des),而对
我正在尝试使用 renv::install() 安装包 stringi。 一般情况下,我会用 install.packages('stringi', configure.vars='ICUDT_DIR
我正在尝试调用 knit这告诉我它需要更新版本的 rmarkdown需要包stringi . 安装时stringi我收到以下错误: > install.packages("stringi") Inst
我正在尝试在 R 中安装 stringi 包,但安装从未完成。下载并编译后,我收到以下消息: Error in dyn.load(file, DLLpath = DLLpath, ...) : u
系统:macOS Sierra 10.12.6 Xcode:9.2 (2347) R:3.4.0 RStudio:1.1.383 我正在尝试安装最新版本的 stringi (1.1.6)。自从 Xco
我有数据,其中每一行都是一个人。我想制作一个随机生成的唯一 ID,以便在分析中识别它们。 这是一个示例数据框 df % mutate(UniqueID = do.call(paste0, Map(
我现在使用 stringi 包有一段时间了,一切正常。 我最近想将一些正则表达式放入一个函数中,并将该函数存储在一个单独的文件中。如果函数是从脚本加载的,代码就可以正常工作,但是当它被加载时,我没有得
目的 我试图使用 vif()来自 car 的函数R 包。 初始错误消息 当我第一次执行 vif(X) ,弹出错误信息如下: Error in vif(mod1) : could not find fu
我在 R 中有一个大型数据框,其中有一列看起来像这样,其中每个句子都是一行 data <- data.frame( datalist = c("anarchism is a wiki/polit
下一个我要断了string成句: library(NLP) # NLP_0.1-7 string 快速)和 openNLP (-> 质量)? 最佳答案 ICU 中的文本边界(在这种情况下,句子边界
请帮我在R中安装stringr和stringi包。结果是: install.packages("stringi") Installing package into ‘C:/Users/kozlovpy
我有一些字符串 string <- "abbccc" 我想将同一个字母的链替换为一个字母和该字母的出现次数。所以我想要这样的东西:“ab2c3” 我使用 stringi 包来做这个,但它并没有完全按照
例如,我有一些字符串实际上是用于创建表格的 HTML 代码 z MESA HIGH VICTORIES Team Score Parkfield High Demon
我们正在努力使一些 R 代码在生产环境中工作,作为其中的一部分,我们正在安装一些 R 包,如下所示: # Default directories and mirrors WORKING_DIR 应
最近使用 Appveyor 的构建不再有效。它在实际构建程序之前失败了,因为不知何故无法安装包 stringi。 本地一切正常,但我需要 Appveyor 的解决方法。有人有解决此问题的解决方案吗?
我想知道为什么我通过使用 gsub 和 stringi 获得两个不同的输出字符串。元字符“.”不包括 stringi 中的新行? stringi 是否“逐行”读取? 顺便说一下,我没有找到任何方法来使
在 Windows 10 上,RStudio。我试过使用命令 install.packages,但它总是出现以下消息: > install.packages ("stringi") There is
在 Windows 10 上,RStudio。我试过使用命令 install.packages,但它总是出现以下消息: > install.packages ("stringi") There is
我是一名优秀的程序员,十分优秀!