2014-02-12 78 views
0

我試圖在ARM上使用clang/llvm交叉編譯示例hello world程序。Clang/llvm:crt1.o在交叉編譯時找不到crti.o

我在連接時遇到了一些問題。

鐺-target臂無-Linux的gnueabi的hello.c

它顯示了一些錯誤「沒有這樣的文件或目錄 」stdio.h中

因此要避免我給錯誤以下命令。

鐺-Target臂-NONE-Linux的gnueabi -sysroot = /路徑/工具鏈/ hello.c的-I /路徑/工具鏈/ SYSROOT的/ usr /包括/

然後我成功地過來了錯誤,但我得到了鏈接錯誤。 錯誤:「沒有這樣的文件或目錄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

期待的任何幫助。 我使用的是鏗鏘3.0,後來我下載了預編譯的二進制文件並升級到了鏗鏘3.3。 在此先感謝。:)

回答

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說明採取標題和庫的確切路徑(不需要提供include和庫路徑)