失去了一些東西我安裝了CodeSourcery的G ++工具鏈,並試圖編譯一個簡單的Hello World程序:在手臂G ++
#include <iostream>
using namespace std;
int main()
{
cout << "Hello World" << endl;
return 0;
}
,並得到了很多錯誤從鏈接
$ arm-none-eabi-g++ helloworld.cpp -o helloworld.exe
bin/ld: warning: cannot find entry symbol _start; defaulting to 0000000000008018
lib/libc.a(lib_a-abort.o): In function `abort':
abort.c:(.text.abort+0x10): undefined reference to `_exit'
lib/libc.a(lib_a-fstatr.o): In function `_fstat_r':
fstatr.c:(.text._fstat_r+0x1c): undefined reference to `_fstat'
lib/libc.a(lib_a-openr.o): In function `_open_r':
openr.c:(.text._open_r+0x20): undefined reference to `_open'
lib/libc.a(lib_a-sbrkr.o): In function `_sbrk_r':
sbrkr.c:(.text._sbrk_r+0x18): undefined reference to `_sbrk'
lib/libc.a(lib_a-signalr.o): In function `_kill_r':
signalr.c:(.text._kill_r+0x1c): undefined reference to `_kill'
lib/libc.a(lib_a-signalr.o): In function `_getpid_r':
signalr.c:(.text._getpid_r+0x4): undefined reference to `_getpid'
lib/libc.a(lib_a-writer.o): In function `_write_r':
writer.c:(.text._write_r+0x20): undefined reference to `_write'
lib/libc.a(lib_a-closer.o): In function `_close_r':
closer.c:(.text._close_r+0x18): undefined reference to `_close'
lib/libc.a(lib_a-isattyr.o): In function `_isatty_r':
isattyr.c:(.text._isatty_r+0x18): undefined reference to `_isatty'
lib/libc.a(lib_a-lseekr.o): In function `_lseek_r':
lseekr.c:(.text._lseek_r+0x20): undefined reference to `_lseek'
lib/libc.a(lib_a-readr.o): In function `_read_r':
readr.c:(.text._read_r+0x20): undefined reference to `_read'
collect2: ld returned 1 exit status
什麼庫時我錯過了嗎?
看起來它缺少運行時。也許像'crt0.o'或'-lc'? –
@Kerrek SB,'-lc'沒有幫助,我在libgcc目錄中沒有'crt0.o',只有'crtbegin.o','crtend.o','crti.o','crtn。以'crt'開頭的'o'。 – Dani
嘗試使用'-v'標誌運行編譯器並查看輸出。你應該看到'collect2'的實際參數,它應該包含像'-lc'和'.../crt1.o'這樣的東西。如果他們不這樣做,你的編譯器配置錯誤,請嘗試重新安裝它。 –