GCC手冊說:要-lobjc還是不要-lobjc?
file.m
Objective-C source code. Note that you must link with the
libobjc
library yo make an Objective-C program work.
和:
-lobjc
You need this special case of the
-l
option in order to link an
Objective-C or Objective-C++ program.
不過,可以成功地編譯的p簡單的程序:
$ cc prg.m -framework Foundation
當您包含框架時,它是否爲鏈接器默認值?如果是這樣, 在哪裏記錄?該計劃得到反正鏈接:
$ otool -L a.out
a.out:
/System/Library/Frameworks/Foundation.framework/.../Foundation (...)
/usr/lib/libSystem.B.dylib (...)
--> /usr/lib/libobjc.A.dylib (...)
/System/Library/Frameworks/CoreFoundation.f...k/.../CoreFoundation (...)
你有沒有試過在Linux系統上編譯這個?它可能是os x默認這樣做的。 – Eimantas
好,我沒有試過。但即使手冊本身也被修改,在許多地方都有「僅限Apple」筆記。所以我想知道(如果這是Apple系統專有的)爲什麼它沒有明確記錄在這些部分附近。 – sidyll
是的,它是Apple編譯器的鏈接器默認值。他們並不總是在他們的手冊頁中保持最新。請提交錯誤報告。 – Yuji