交叉编译时NDK工具链中的/ system / bin / linker在哪里

时间:2019-01-11 22:36:15

标签: android c++ android-ndk

我试图针对CentOS主机上的NDK工具链构建一个autoconf项目,因此我可以使用作为本机库android应用程序的一部分生成的共享对象。

编译时,我收到有关丢失的/system/bin/linker64文件的错误。 (bad ELF interpreter: No such file or directory)

这是NDK工具链的一部分,我可以将/ system / bin / linker64符号链接到工具链中的某个东西或我的CentOS动态链接器,或者什么?

我通过以下方式设置我的环境:

$NDK/build/tools/make_standalone_toolchain.py \
  --arch x86_64\
  --api 26 \
  --install-dir=my-toolchain

并且我已经获得了该文件来设置环境:

# Add the standalone toolchain to the search path.
export PATH=$PATH:`pwd`/my-toolchain/bin

# Tell configure what tools to use.
target_host=x86_64-linux-android
export AR=$target_host-ar
export AS=$target_host-clang
export CC=$target_host-clang
export CXX=$target_host-clang++
export LD=$target_host-ld
export STRIP=$target_host-strip

# Tell configure what flags Android requires.
export CFLAGS="-fPIE -fPIC"
export LDFLAGS="-pie

我已使用以下命令运行我的配置脚本

./configure --host=$target_host ....

1 个答案:

答案 0 :(得分:2)

无处。那不是工具链的一部分。

如果您将其视为构建的一部分,则意味着尝试在主机上运行Android二进制文件。那不应该发生的。

我的猜测:您的autoconf项目已设置为运行“编译器是否工作”测试二进制文件,并且不了解x86_64 Android与x86_64 GNU / Linux不同。我在其他项目中也看到过这个问题(gdbserver是我想到的那个问题)。

您需要仔细查看正在运行的内容以及原因;这里没有足够的信息来确定您需要解决的问题。