Apple M1环境下R从源码安装包时找不到png.h,如何指定路径?
问题描述
在Apple M1设备上从源码安装R软件包ggiraph时,出现png.h文件未找到的编译错误。已通过Homebrew完成libpng的安装:
brew install libpng
png.h的实际安装路径为/opt/homebrew/Cellar/libpng/1.6.39/include/libpng16/png.h,且存在符号链接指向/opt/homebrew/include/png.h。执行安装命令:
install.packages("ggiraph", type = "source")
触发以下核心错误:
raster.cpp:7:10: fatal error: 'png.h' file not found #include <png.h> ^~~~~~~
解决方法
方法一:临时指定编译参数安装
直接在安装命令中通过configure.args参数指定libpng的头文件路径:
install.packages("ggiraph", type = "source", configure.args = "--with-png-include=/opt/homebrew/include")
方法二:配置全局编译参数(永久生效)
修改R的编译配置文件,让所有源码安装的软件包自动识别Homebrew的库路径:
- 在终端创建或打开R的
Makevars配置文件:
mkdir -p ~/.R && touch ~/.R/Makevars && open ~/.R/Makevars
- 在文件中添加以下内容:
# 引入Homebrew头文件和库路径 CPPFLAGS += -I/opt/homebrew/include LDFLAGS += -L/opt/homebrew/lib
- 保存文件后重启R,再执行安装命令即可。
方法三:临时设置环境变量
在终端启动R前,先设置编译相关的环境变量:
export CPPFLAGS="-I/opt/homebrew/include" export LDFLAGS="-L/opt/homebrew/lib" R
进入R环境后,执行install.packages("ggiraph", type = "source")即可。
内容的提问来源于stack exchange,提问作者ssp3nc3r
相关产品推荐
相关产品推荐

