2

我正在尝试在 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!

检查错误日志,CMake 似乎无法确定整数、短整数和长整数的大小。完整的错误日志可以在这个 gist中找到

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

4

4 回答 4

11

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

sudo yum groupinstall "Development Tools"

接下来,您可以自己下载和构建 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

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

于 2019-03-05T13:02:01.653 回答
1

这适用于最新的 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
于 2021-11-02T01:17:10.920 回答
1

虽然这实际上并没有回答为什么会发生错误,但我能够通过从源代码构建 CMake 来构建 OpenJpeg。所以我刚刚删除了通过 yum 安装的 Cmake,我相信它是 2.8.12。下载了最新的 CMake3 源代码 (v 3.10) 构建了 Cmake 和 openjpeg 以及我所有的其他包,没有任何问题。

于 2017-12-03T06:46:51.550 回答
0

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

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

于 2017-11-27T20:47:05.853 回答