、のAndroidは、共有ストレージ上のファイルはnoexec
にマウントすることによってを実行することはできません。
あなたは
/system/bin/mount | grep /storage
を実行する場合は、このような何か見つけることができます:
/data/media on /storage/emulated type sdcardfs (rw,nosuid,nodev,noexec,noatime,low_uid=1023,low_gid=1023,gid=9997,multi_user,mask=0007,reserved=100MB)
^~~~~~
実際のマウントポイントは、(/storage/sdcard0
)異なる場合がありますが、それは確実にnoexec
が搭載されています。
実行を実行する前に、実行ファイルをTermuxのホームディレクトリ(またはext4マウントポイントのどこか)に移動する必要があります。これがCppDroidの機能です。ソースコードはどこにでも保存できますが、内部ストレージ内の実行可能ファイルのみを実行します。
あなたはTermuxで実行したい場合は、この従ってください: "位置独立した実行ファイル(PIE)" の問題については
$ cp <your-program> ~/a.out
$ chmod 777 ~/a.out
$ ~/a.out
program output
$
を、私はあなたにCppDroidのための明確なデータを示唆しています。コンパイラとしてGCCを使用しています。これは、PIE実行可能ファイルを生成するためには、-pie
オプションが必要です。どのような設定が混乱しているのか分かっているなら、自分で修正することもできます。
Termuxが提供するClangコンパイラは、デフォルトでPIE実行可能ファイルを生成します。
a.outの許可と所有者を確認しましたか? – klutt
@klutt別の画像を追加しました。あなた自身を見てください。私は許可シンボルを理解していません。 – Tangent
実行するにはrootにする必要があるようです。 – klutt