4

我正在使用 Fedora (laughlin)。我在这个发行版上用 c 和 java 做了很多编程。所以我决定在 linux 中尝试一些 Objective-C 编程。我在互联网上搜索了很多页面,最后找到了一个。

http://www.techotopia.com/index.php/Building_and_Installing_GNUstep_on_Linux

我按照此页面上的说明进行了安装GNUstep

安装过程一切顺利。但是在写了一小段代码并使用命令编译之后:

gcc gnustep-config --objc-flags` -L/usr/GNUstep/System/Library/Libraries -lgnustep-base hello.m -o hello

它给了我以下错误:

/usr/bin/ld: /usr/GNUstep/System/Library/Libraries/libgnustep-base.so: undefined reference to symbol 'objc_msg_lookup' /usr/bin/ld: note: 'objc_msg_lookup' is defined in DSO /usr/lib/libobjc.so.2 so try adding it to the linker command line /usr/lib/libobjc.so.2: could not read symbols: Invalid operation collect2: ld returned 1 exit status

我是 Objective-C 的新手。我不知道链接器命令存在哪里。我尝试将 添加/usr/libenv.变量中。但它没有成功。我还试图在他们的论坛上找到解决方案(如果他们有的话!!)。但他们没有。

谁能帮我解决这个问题?

提前致谢!!

4

3 回答 3

9

它抱怨您引用的代码没有链接到您的应用程序。有用的是,它会告诉您缺少什么以及它在哪里。尝试添加-lobjc到标志。

于 2012-08-01T19:46:53.777 回答
5

在我的情况下,只需将 -lobjc 标志添加到命令行参数就可以了。

gcc `gnustep-config --objc-flags` -Wl,--no-as-needed -lgnustep-base -lobjc firstObjcProg.m -o firstObjcProg
于 2014-12-20T17:29:40.877 回答
0

尝试这个:

gcc `gnustep-config --objc-flags` -o hello hello.m -L /GNUstep/System/Library/Libraries -lobjc -lgnustep-base
于 2012-08-01T19:47:22.470 回答