2017-01-17 92 views
0

鏈接我編譯gcc -c -nostdlib -fno-stack-protector <my code> -o <my cobj>我的C代碼,我想用std庫的功能,如sprintfstrcmp等on.So我怎麼能聯繫我cobj文件與stdc靜態庫?LD:性病ç靜態庫

Makefile鏈接腳本是ld -T [email protected] -o [email protected] $^ -L.. -llib --no-check-sections

PS:我-nostdlib選項編譯,因爲我不想讓std庫的crt一部分,但我想用獨立於平臺的功能,如sprintfstrcmprandomva_list

+2

這沒有意義。爲什麼說gcc不要與stdlib鏈接,然後問如何鏈接stdlib? – Stargateur

+0

@Stargateur,因爲我不想stdlib的'crt'部分 – dcnh35

+0

爲什麼你不想要c運行時庫?看起來像一個XY問題。 – Stargateur

回答

0

您可以-nostartfiles -static -nostdlib -fno-stack-protector -lc編譯但要注意的libc的某些部分可能對從libgcc中(__gcc_personality_v0等)件的依賴,所以你很可能就會有錯誤杜裏ng鏈接。

你可以提供你自己的虛擬(或不是虛擬)這樣的功能的實現。或者您可以使用不依賴於libgcc的不同libc實現(可能是newlib或uClibc)。

This question可能是相關的。