我正在使用Fedora(笑)。 我已经做了大量的编程,在这个发行版和JAVA。 所以我决定在linux中尝试一些Objective-C编程。 我在互联网上search了很多页面,最终find了一个。
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/lib
到env.
variables。 但它没有解决。 我也试图找出他们的论坛上的解决scheme(如果他们有一个!)。 但他们没有。
任何人都可以帮我这个吗?
提前致谢!!
这是抱怨说,你正在引用你没有链接到你的应用程序的代码。 有用的是,它告诉你什么是缺少的,它在哪里。 尝试添加-lobjc
到标志。
在我的情况下只是添加-lobjc标志的命令行参数,它完美的工作。
gcc `gnustep-config --objc-flags` -Wl,--no-as-needed -lgnustep-base -lobjc firstObjcProg.m -o firstObjcProg
尝试这个:
gcc `gnustep-config --objc-flags` -o hello hello.m -L /GNUstep/System/Library/Libraries -lobjc -lgnustep-base