Для -lobjc или нет для -lobjc? - PullRequest
       16

Для -lobjc или нет для -lobjc?

8 голосов
/ 12 сентября 2011

Руководство GCC гласит:

file.m
Objective-C source code. Note that you must link with thelibobjc
library yo make an Objective-C program work.

А:

-lobjc
You need this special case of the-loption in order to link an
Objective-C or Objective-C++ program.

Однако я могу успешно скомпилировать программу с помощью:

$ 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 (...)

1 Ответ

5 голосов
/ 12 сентября 2011

Это потому, что фреймворк Foundation уже связан с libobjc.

Так что в OSX вам понадобится опция -lobjc, только если вы не связаны с фреймворком Foundation(что очень редко).

...