使用clang对目标aarch64-cros-linux-gnu进行交叉编译

时间:2018-12-14 09:01:52

标签: c++ linux clang cross-compiling

也许我有一个愚蠢的问题,但是我坚持那个问题。我正在尝试使用针对目标aarch64-cros-linux-gnu的简单测试程序的clang-5.0进行交叉编译:

int main(int argc, const char **argv)
{
    return 0x2;
}

因此,当我使用下一条命令运行clang时:

/home/alex/Dev/CustomToolchains/Google/clang-5.0/aarch64/usr/bin/clang --sysroot=/home/alex/Dev/CustomToolchains/Google/clang-5.0/aarch64/usr/aarch64-cros-linux-gnu -Qunused-arguments -grecord-gcc-switches -fPIE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -pie -fno-omit-frame-pointer main.cxx -o main3 -B/home/alex/Dev/CustomToolchains/Google/clang-5.0/aarch64/bin -target aarch64-cros-linux-gnu

我遇到错误:

ld.bfd: no input files
clang: error: linker command failed with exit code 1 (use -v to see invocation)

但是当我删除--sysroot和-target参数时,一切正常。我已经检查了--sysroot路径,它已经存在,但是我不确定它是否正确。 clang docs表示此文件夹必须包含bin,lib和include目录,但是在sysroot目录中只有下一个文件夹:

lib  lib64  NOTICE-eglibc  NOTICE-gdb  sbin  sys-include  usr  var

那么,如何为目标三元组aarch64-cros-linux-gnu指定指向clang的正确工具链路径?或在哪里可以找到该工具链?

非常感谢您的回答。 PS。我是所有与linux / clang / cros编译相关的人员的新手,因此对我的问题中的错误感到抱歉。

0 个答案:

没有答案
相关问题