在macOS 13.4.1(Ventura)上,我试图从源代码编译R,但即使我安装了它,它也找不到pcre2.h
:
cd /tmp
export R_VERSION=4.2.3
curl -O https://cran.rstudio.com/src/base/R-4/R-${R_VERSION}.tar.gz
tar -xzvf R-${R_VERSION}.tar.gz
cd R-${R_VERSION}
./configure --prefix=/opt/R/${R_VERSION} \
--enable-R-shlib \
--enable-memory-profiling
R is now configured for aarch64-apple-darwin22.5.0
Source directory: .
Installation directory: /opt/R/4.2.3
C compiler: gcc -g -O2
Fortran fixed-form compiler: gfortran -fno-optimize-sibling-calls -g -O2
Default C++ compiler: g++ -std=gnu++14 -g -O2
C++11 compiler: g++ -std=gnu++11 -g -O2
C++14 compiler: g++ -std=gnu++14 -g -O2
C++17 compiler: g++ -std=gnu++17 -g -O2
C++20 compiler: g++ -std=gnu++20 -g -O2
Fortran free-form compiler: gfortran -fno-optimize-sibling-calls -g -O2
Obj-C compiler: gcc -g -O2 -fobjc-exceptions
Interfaces supported: X11, aqua, tcltk
External libraries: pcre2, readline, curl
Additional capabilities: NLS, ICU
Options enabled: shared R library, shared BLAS, R profiling, memory profiling
Capabilities skipped: PNG, JPEG, TIFF, cairo
Options not enabled:
Recommended packages: yes
然后
sudo make
失败原因:
grep.c:73:10: fatal error: 'pcre2.h' file not found
# include<pcre2.h>
^~~~~~~~~
1 error generated.
make[3]: *** [grep.o] Error 1
make[2]: *** [R] Error 2
make[1]: *** [R] Error 1
make: *** [R] Error 1
pcre2
已安装,使用自制软件:
brew install pcre2
Warning: pcre2 10.42 is already installed and up-to-date.
To reinstall 10.42, run:
brew reinstall pcre2
我可以在这里找到pcre2.h
:
ls /opt/homebrew/include | grep pcre
pcre2.h
pcre2posix.h
如何告诉R对pcre2.h
使用/opt/homebrew/include?
1条答案
按热度按时间zbsbpyhn1#
如果你看一下这个文件,它周围有几个
#define
语句:而pcre是有趣的,因为有较新的pcre 2和较旧的(!!)pcre 3.我建议你a)检查
configure
产生了什么,特别是在config.h
中。也许b)检查当前的源代码版本4.3.1以及当前的开发版本。最后,Kurt在使用autoconf
和m4
方面非常熟练,因此您可以跟踪检测代码。值得一提的是,在我负责Debian的R版本的25年多时间里(加上一些最初帮助当时的维护者),我没有遇到过问题。
PS还要注意,
./configure
有两个标志为pcre你可以考虑。最坏的情况下,你可以关闭pcre2
:其中
pcre1
可能是古老的。