【发布时间】:2013-02-05 11:40:58
【问题描述】:
我下载并构建了 GNUstep libobjc2 1.6.1,
svn co http://svn.gna.org/svn/gnustep/libs/libobjc2/1.6.1/ rep
cd rep
make
当我尝试编译 Objective-C 代码时出现此错误。
hoon@ubuntu:~/work/objc2$ clang -fobjc-nonfragile-abi -fobjc-arc -fblocks *.m *.a -l pthread; ./a.out
Objective-C ABI Error: Loading modules from incompatible ABIs while loading
a.out: loader.c:38: __objc_exec_class: Assertion `objc_check_abi_version(module)' failed.
Aborted (core dumped)
看来我需要用一些不同的配置来构建libobjc.a。有什么问题,我应该怎么做才能解决这个错误?
环境:Ubuntu 12.04 LTS
【问题讨论】:
-
如果你想使用 GNUstep + Objective-C 2.0 + ARC 等,最好全部从主干构建,避免所有分发包。
-
svn.gna.org/svn/etoile/trunk/Etoile/BuildScripts 包含一些构建脚本,它们将从网络中提取所有内容并为您构建它们(包括 Etoile,如果您不想要它,请摆脱分离的脚本文件)
-
@FredFrith-MacDonald 我使用官方 1.6.1 版本来避免不稳定的源。我可以认为 GNUstep 主干足够稳定吗?
-
是的,据我所知,它们非常稳定。我多年来一直在使用它,没有遇到太多麻烦(或者不比发布更麻烦,imo)。除了发布可能会很慢,并且不会包含最近的错误修复。该项目的性质有点冻结,即。跟踪新的 Cocoa 类并修复旧错误而不是实现功能。所以我认为坚持使用后备箱非常安全。当然,它们有时会坏掉,但通常会在几个小时内得到修复。
标签: objective-c ubuntu runtime gnustep libobjc2