Amazon EC2的CrossCompile C 二进制

crosscompile c++ binary for Amazon EC2

本文关键字:二进制 CrossCompile EC2 Amazon      更新时间:2023-10-16

我试图仅根据看起来相似的内容(两个Ubuntu 64位)进行编译,但是二进制文件不是Ubuntu的Amazon实例(也是64位,但不要)比这更了解)。

我已经看到一个线程建议旋转其他EC2实例只是为了编译在那里,但是它不是一个解决方案,因为我无法在外面传输源,只有一个编译的二进制文件和动态的libs。

正在考虑在我的计算机上制作虚拟环境来产生EC2的克隆以编译在那里,但是可以可行吗?

内核信息:

uname -a
4.4.0-93-generic                 #116-Ubuntu SMP Fri Aug 11 21:17:51 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
ip-xxx-xxx-xxx-xxx 4.4.0-1035-aws #44-Ubuntu SMP Tue Sep 12 17:27:47 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

它使用了一些亚马逊裁缝制造的内核?

文件信息:

file ./testBinary
./testBinary: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), too many program (2304)
file -Pelf_phnum=3000 ./testBinary 
./testBinary: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), corrupted program header size, corrupted section header size

您实际上无法从某些AMI创建的'Clone'EC2实例。因此,由于您没有任何有关库确切不工作的详细信息,因此我建议运行Amazon Linux而不是Ubuntu。

您可以在计算机上的Docker容器中运行Amazon Linux并在那里构建库(https://hub.docker.com/_/amazonlinux/)。这样,库应在Amazon Linux的任何EC2中都没有问题。

如果您想坚持使用Ubuntu,至少应该匹配Ubuntu版本(不仅仅是架构)和内核版本。