當使用 libc 符號時,我是否應該明確地將我的程式或庫與 libc 鏈接起來?
也就是說,cc ... -lc
如果是程式,這個問題適用于 Makefile,如果是庫,Makefile 和 pkg-config 檔案都適用。
還有一個附帶的問題:如果我完全不使用任何 libc 符號呢?這可能是一個非常無用的程式,但我很好奇。
我似乎記得有些文章或書籍推薦這樣做,但現在我找不到了。 是否有任何情況下,這樣做或不這樣做都會有問題?
編輯:
我通常使用gcc和clang。
uj5u.com熱心網友回復:
當使用 libc 符號時,我是否應該明確地將我的程式或庫與 libc 鏈接起來?
不。從POSIX cc:
標準C語言庫是自動提供給C語言程式的。
如果我根本不使用任何libc符號呢?
如果我根本不使用任何libc符號呢?
那么還是不要明確地與 libc 鏈接,讓編譯器自動與之鏈接。
在任何情況下,這樣做或不這樣做都會有問題嗎?
當你正在撰寫一個內核、裸機軟體或其他針對你作業環境的底層程式時,而你不想鏈接標準庫。另外,當你不接受庫的許可證時。
uj5u.com熱心網友回復:
如果我根本不使用任何libc符號呢?
如果我根本不使用任何libc符號呢?
那么你的程式就是獨立的,不需要與標準庫鏈接。
如果你使用gcc,你需要用-nostdlib命令列選項編譯它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/318106.html
標籤:
