我正在尝试使用clang / llvm在ARM上交叉编译示例hello world程序。
我在链接方面遇到了一些问题。
clang -target arm-none-linux-gnueabi hello.c
它显示一些错误“ 没有这样的文件或目录”stdio.h “
所以为了避免错误我给出了以下命令。
clang -target arm-none-linux-gnueabi -sysroot = / path / toolchain / hello.c -I / path / toolchain / sysroot / usr / include /
然后我成功结束了错误,但是我收到了链接错误。 错误:“ 没有此类文件或目录crt1.o ” “ 没有这样的文件或目录crti.o ” 我导出了库路径,并在命令行中给出了路径,但没有什么对我有用。我给出了以下命令。
clang -target arm-none-linux-gnueabi -sysroot = / path / toolchain / hello.c -I / path / toolchain / sysroot / usr / include / -L / path / toolchain / sysroot / usr / lib中
仍然是同样的错误 “ 没有此类文件或目录crt1.o ” “ 没有这样的文件或目录crti.o ”
期待任何帮助。 我正在使用clang-3.0,后来我下载了预建的二进制文件并升级到了clang-3.3。 在此先感谢。)
答案 0 :(得分:0)
上述问题可以通过以下命令解决。
clang -target armv7-none-eabi -sysroot=/toolchain/path/to/sysroot/ hello.c -ccc-gcc-name arm-none-linux-gnueabi-gcc hello.c
这里的目标是说clang编译器选择合适的目标。 sysroot说明了获取头文件和库的确切路径(无需提供包含和库路径)