Mac系统pip安装roslz4报错找不到lz4.h头文件问题咨询
问题根因
通过brew安装lz4后依然报错,核心原因是pip编译roslz4调用clang时,不会自动加载Homebrew的头文件、库文件搜索路径,编译器找不到lz4.h头文件,需要手动把lz4的安装路径加入编译对应的环境变量。
解决步骤
第一步:查询本机lz4的安装前缀
执行命令获取lz4的安装路径:brew --prefix lz4arm架构(M系列芯片)Mac默认输出为
/opt/homebrew/opt/lz4,Intel芯片Mac默认输出为/usr/local/opt/lz4。
可以执行ls 【你查到的路径】/include确认目录下存在lz4.h文件,提前排除路径错误问题。第二步:选择对应方式配置环境变量后重新安装即可
- 临时配置(推荐,不污染全局环境):配置仅对当前这一条安装命令生效,直接在pip命令前追加编译参数即可,替换为你自己查到的lz4路径,以M系列Mac为例:
CFLAGS="-I/opt/homebrew/opt/lz4/include" LDFLAGS="-L/opt/homebrew/opt/lz4/lib" pip install --extra-index-url https://rospypi.github.io/simple/ roslz4 - 永久全局配置:如果后续需要频繁编译依赖lz4的Python包,可以把路径写入shell配置文件。Mac默认使用zsh,将以下两行追加到
~/.zshrc文件末尾(Intel芯片替换为对应/usr/local/opt/lz4路径):
保存后执行export CFLAGS="-I/opt/homebrew/opt/lz4/include $CFLAGS" export LDFLAGS="-L/opt/homebrew/opt/lz4/lib $LDFLAGS"source ~/.zshrc让配置生效,再执行原pip安装命令即可完成编译安装。
- 临时配置(推荐,不污染全局环境):配置仅对当前这一条安装命令生效,直接在pip命令前追加编译参数即可,替换为你自己查到的lz4路径,以M系列Mac为例:
内容的提问来源于stack exchange,提问作者Cecilia
相关产品推荐
相关产品推荐

