在 Amazon Linux 上运行 CMake

Zai*_*mir 2 cmake amazon-linux

我正在尝试在 AWS Amazon Linux EC2 实例上构建 OpenJpeg。我安装了 cmake 和 gcc,并且在安装过程中没有问题。当我尝试 cmake openjpeg 时,出现以下错误:

-- Check if the system is big endian
-- Searching 16 bit integer
CMake Error at /usr/share/cmake/Modules/TestBigEndian.cmake:44 (message):
  no suitable type found
Call Stack (most recent call first):
  CMakeLists.txt:164 (TEST_BIG_ENDIAN)


-- Configuring incomplete, errors occurred!
Run Code Online (Sandbox Code Playgroud)

检查错误日志,似乎 CMake 无法确定整数、空头和多头的大小。完整的错误日志可以在这个要点中找到

我怎样才能解决这个问题并使 CMake 工作?

小智 14

这适用于最新的 Amazon Linux 映像(2021 年 11 月):

# Install sudo, wget and openssl, which is required for building CMake
yum install sudo wget openssl-devel -y

# Install development tools
sudo yum groupinstall "Development Tools" -y

# Download, build and install cmake
wget https://cmake.org/files/v3.18/cmake-3.18.0.tar.gz
tar -xvzf cmake-3.18.0.tar.gz
cd cmake-3.18.0
./bootstrap
make
sudo make install
Run Code Online (Sandbox Code Playgroud)


bvd*_*vdb 8

亚马逊有一个指南:Preparing to Compile Software,其中提出了以下命令来安装 C 编译器。

sudo yum groupinstall "Development Tools"
Run Code Online (Sandbox Code Playgroud)

接下来,您可以自己下载并构建 Cmake:安装 Cmake 3

wget https://cmake.org/files/v3.18/cmake-3.18.0.tar.gz
tar -xvzf cmake-3.18.0.tar.gz
cd cmake-3.18.0
./bootstrap
make
sudo make install
Run Code Online (Sandbox Code Playgroud)

注意:最后一个 make 实际上需要 sudo。


iva*_*lev 0

您可以尝试设置 Docker 容器来复制正确的环境。这样,您就可以在本地计算机上形成一个容器,确保它全部构建在容器环境上,然后在 EC2 上使用该环境。

Github 上有一个项目提供了一个 Docker 镜像,可用于编译 Lambda 并在本地测试内容。看一下: https: //github.com/lambci/docker-lambda