Linux环境下编译构建AWS SDK C++ EC2库卡顿问题求助
Linux环境编译AWS C++ SDK EC2组件卡顿问题解决方案
已执行操作步骤
- 克隆SDK仓库:
git clone --recurse-submodules https://github.com/aws/aws-sdk-cpp - 创建构建目录:
mkdir sdk_build - 进入构建目录:
cd sdk_build - 执行CMake配置:
cmake ../aws-sdk-cpp -DCMAKE_BUILD_TYPE=Debug -DBUILD_ONLY="ec2" - 启动编译:
make
卡顿问题解决方法
- 调整编译并行数
默认make会占用全部CPU核心启动编译任务,内存小于8GB的设备很容易因内存耗尽出现假死卡顿。可将编译命令修改为make -j2,数字代表同时运行的编译任务数,16GB及以上内存设备可调整为-j4。 - 修改编译模式
Debug模式会生成大量调试符号,编译体积和耗时都是Release模式的3~5倍。如果不需要全量调试能力,可将CMake配置中的编译类型改为Release:cmake ../aws-sdk-cpp -DCMAKE_BUILD_TYPE=Release -DBUILD_ONLY="ec2",可大幅降低编译耗时和资源占用。 - 补全子模块
如果克隆仓库时子模块拉取不完整,编译过程会出现静默卡滞。可进入SDK源码目录执行git submodule update --init --recursive补全所有子模块后重新编译。 - 定位卡滞具体环节
执行编译时添加日志参数make VERBOSE=1,可实时查看当前编译的文件和执行的命令,快速定位是依赖缺失还是源码异常导致的卡滞。
内容的提问来源于stack exchange,提问作者Jospeh
相关产品推荐
相关产品推荐

