質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

UE4

UE4はUnreal Engine(アンリアルエンジン)の第4世代です。 UEは、Epic Gamesより開発されたゲームエンジンです。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

0回答

2286閲覧

Linuxサーバーで"cannot execute binary file"エラーがでる。

退会済みユーザー

退会済みユーザー

総合スコア0

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

UE4

UE4はUnreal Engine(アンリアルエンジン)の第4世代です。 UEは、Epic Gamesより開発されたゲームエンジンです。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2019/12/07 07:59

編集2019/12/08 08:49

前提・実現したいこと

AWSのEC2サーバーでUE4のLinux用実行ファイルを起動したい。

発生している問題・エラーメッセージ

実際にEC2で起動しようとすると

{ファイル名}.sh :cannot execute binary file

というメッセージが出ます。

$uname -a //を実行すると Linux ip-172-31-42-119.ap-northeast-1.compute.internal {IPアドレス}.amzn2.x86_64 #1 SMP Thu Nov 14 17:32:43 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

と出てきます。

$file ./{ファイル名}.sh //を実行すると ./{ファイル名}: POSIX shell script, ASCII text executable

と出ます。

これらが何を示しているのかはよくわかっていないのですが、必要そうな情報だったので覚えておいたほうがいいかなとメモを取っといたものです。ちゃんと理解しているわけではありません。

試したこと

http://mu-777.hatenablog.com/entry/2019/05/01/014346
↑のサイトを見てやっていったのですがアーキテクチャはx86_64のようなので
↓を見てこの表記でx86_64としてビルドしています。
https://docs.unrealengine.com/en-US/Platforms/Linux/GettingStarted/index.html

https://wiki.unrealengine.com/Building_On_Linux
↑を見る限りUE4は64bit向けにビルドされているようなので

補足情報(FW/ツールのバージョンなど)

EC2サーバーは無料利用枠のものです。
https://gyazo.com/c25bfbd231fce32f0e82edcbb84cc7ff

clang 7.3はEC2の方にインストールしました。

CUIのサーバーでGUIのあるアプリケーションを実行できないとかあるんですかね?

どんな情報を載せればいいのかわからなくてとりあえず載せてるだけで申し訳ないのですがよろしくお願いします

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pepperleaf

2019/12/08 11:30

"ls -l {ファイル名}.sh" を実行するとどうなりますか? 単に実行属性が無いだけって事はありませんか?
退会済みユーザー

退会済みユーザー

2019/12/08 11:38

$ ls -l {ファイル名}.sh -rwxrwxrwx 1 ec2-user ec2-user 281 Dec 8 11:34 {ファイル名}.sh 実行属性がどれのことなのか(-rwxrwxrwxかな?)わかりませんがこのように出てきました。 よろしくお願いします。 このようになりました。
XNXSXMXR

2019/12/09 08:19

UE4のバイナリファイルを実行するスクリプトが、そのshファイルに記述されている状態でしょうか。 UE4はまったく触った事がないので見当違いの事になるかもしれませんが、「Targeting Specific Platforms」項のように実行プラットフォームを指定する設定ファイルが必要とかは可能性ありませんか?
退会済みユーザー

退会済みユーザー

2019/12/09 09:01

.shが.exeみたいなものだと思っていたので言っていることがよくわからなかったのですが、試しに $vi {file name}.sh したら #!/bin/bash UE4_TRUE_SCRIPT_NAME=$(echo \"$0\" | xargs readlink -f) UE4_PROJECT_ROOT=$(dirname "$UE4_TRUE_SCRIPT_NAME") chmod +x "$UE4_PROJECT_ROOT/{file name}/Binaries/Linux/{file name}" "$UE4_PROJECT_ROOT/{file name}Binaries/Linux/{file name}" {file name} $@ と書いてありました。batファイルみたいなものなんですね。。。知りませんでした。 /{file name}/Binaries/Linux/{file name} このパスの{file name}を $file {file name} したら ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 3.10.93, BuildID[sha1]=079170eb973949820597aaffe38e7f84f6c04d79, stripped こう出てきました。この{file name}は".sh"のついていないただの{file name}でした。 この文のELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV)はARM aarch64用に作られたファイルだからこのamen linux2 (x86_64?)のosでは実行できないという事でしょうか? ue4のプラットフォーム指定というのはwindows ue4のビルドの際に使う.iniファイルに [/Script/LinuxTargetPlatform.LinuxTargetSettings] TargetArchitecture=X86_64UnknownLinuxGnu の表記をしてとあったのでしたのですがそれの事なら多分大丈夫です。 ue4をソースビルドでエンジンをインストールしたのですが、そこにも http://mu-777.hatenablog.com/entry/2019/05/01/014346 このサイトの用に自分の使いたいプラットフォーム以外コメントアウトする必要があるのですがこれもpublic const string DefaultArchitecture = "x86_64-unknown-linux-gnu" 以外コメントアウトしたのでおそらく大丈夫かなと思います。 この情報から何かわかることがあれば教えていただけると嬉しいです。 よろしくお願いします。
XNXSXMXR

2019/12/09 09:09

> この文のELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV)はARM aarch64用に作られたファイルだからこのamen linux2 (x86_64?)のosでは実行できないという事でしょうか? そうかと思います。 x86_64向けのバイナリファイルを生成するためクロスコンパイルというのを実行するのだと思いますが、ではどうやって指定するのかについては、すみませんわかりません・・・・。
退会済みユーザー

退会済みユーザー

2019/12/09 09:13

分かりました。ありがとうございます!そこまで分かればあとは自力で調べ切れるかも知れません!最悪awsには他のosも用意できそうだったのでARM aarch64のosを探してそっちでも試して見ます。 本当は1番awsの環境に応じた情報量の多いいamzn linuxがいいのですが、、、 ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問