Objective c 到-lobjc还是不到-lobjc?
GCC手册上说:Objective c 到-lobjc还是不到-lobjc?,objective-c,macos,gcc,linker,compilation,Objective C,Macos,Gcc,Linker,Compilation,GCC手册上说: file.m Objective-C源代码。请注意,您必须链接到libobjc library使Objective-C程序工作。 以及: -lobjc 为了链接一个 Objective-C或Objective-C++程序。 但是,我可以通过以下方法成功编译程序: $cc-PRG.M框架基金会 当包含框架时,它是链接器默认值吗?如果是,它在哪里 记录在案?程序仍将链接: $otool-la.out a、 输出: /System/Library/Frameworks/Found
file.m
Objective-C源代码。请注意,您必须链接到
libobjc
library使Objective-C程序工作。
以及:
-lobjc
为了链接一个
Objective-C或Objective-C++程序。
但是,我可以通过以下方法成功编译程序:
<代码> $cc-PRG.M框架基金会
当包含框架时,它是链接器默认值吗?如果是,它在哪里
记录在案?程序仍将链接:
$otool-la.out
a、 输出:
/System/Library/Frameworks/Foundation.framework/../Foundation(…)
/usr/lib/libSystem.B.dylib(…)
-->/usr/lib/libobjc.A.dylib(…)
/System/Library/Frameworks/CoreFoundation.f…k/../CoreFoundation(…)
这是因为Foundation
框架已经链接到libobjc
因此,在OSX上,只有在没有链接到
Foundation
框架(这是非常罕见的)的情况下,才需要-lobjc
选项。您尝试过在linux系统上编译它吗?可能是OSX默认会这么做。很好,我还没试过。但即使是手册本身也进行了修改,在许多地方都有“仅限苹果”的注释。所以我想知道(如果这是苹果系统独有的),为什么不在这些部分附近明确地记录它。是的,这是苹果编译器的默认链接器。它们的手册页并不总是最新的。请提交一份bug报告。输入错误,它是-lobjc