AWS Elastic Beanstalk安装audiowaveform提示gmock/gmock.h不存在如何解决
问题根因
你当前拉取的是audiowaveform的master分支,近期该分支更新了构建逻辑,原有通过软链接关联gmock的方式无法被新的构建脚本正确识别,导致编译测试代码时找不到gmock头文件。
解决方案
方案一:禁用测试编译(推荐,生产环境优先选择)
生产环境部署不需要编译单元测试代码,直接在cmake阶段关闭测试构建即可彻底规避gmock依赖问题,修改你的ebextensions配置中08-audiowaveform-cmake的命令参数即可:
08-audiowaveform-cmake: command: "cmake -DBUILD_TESTS=OFF .." cwd: /opt/src/audiowaveform/audiowaveform-master/build/ test: "[ ! -f /usr/local/bin/audiowaveform ]"
修改完成后重新部署即可,该方案不受后续audiowaveform测试依赖更新的影响,稳定性更高。
方案二:修复gmock依赖(仅当需要运行单元测试时使用)
如果你需要编译测试代码,先将googletest、gmock编译安装到系统路径,再构建audiowaveform:
- 删除原有配置中的
05-audiowaveform-ln-test、06-audiowaveform-ln-mock两个软链接命令 - 在commands部分新增googletest编译安装命令,放在
04-change-mod-audiowaveform之后:
04.1-install-gtest-gmock: command: "mkdir -p build && cd build && cmake .. && make && make install && ldconfig" cwd: /opt/src/googletest/googletest-release-1.10.0 test: "[ ! -f /usr/local/lib/libgmock.a ]"
- 保留原有cmake、make相关命令不变,重新部署即可。
内容的提问来源于stack exchange,提问作者Gary Dickerson
相关产品推荐
相关产品推荐

