【发布时间】:2015-04-17 20:14:42
【问题描述】:
我没有用于 ios 开发的 Mac 机器。现在我处于学习阶段,想在Linux上开始ios开发。那么是否可以在 Linux 环境下运行 Objective-C 代码呢?
【问题讨论】:
标签: objective-c ubuntu installation
我没有用于 ios 开发的 Mac 机器。现在我处于学习阶段,想在Linux上开始ios开发。那么是否可以在 Linux 环境下运行 Objective-C 代码呢?
【问题讨论】:
标签: objective-c ubuntu installation
是的,在 Ubuntu 中可以通过以下方式运行 Objective-C 代码:
在 Ubuntu 中,使用以下命令安装 GNU Objective-C 编译器和 Gnu-step 开发库::
sudo apt-get –y install gobjc gnustep gnustep-devel
现在键入下面给出的程序并以 .m 扩展名保存文件。
例如,hello.m
// 'Hello World' Program in Objective-C
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSLog (@"Hello, World!");
[pool drain];
return 0;
}
现在使用以下命令编译程序:
gcc $(gnustep-config --objc-flags) -o hello hello.m $(gnustep-config --base-libs)
或者你可以编写这个示例 Makefile:
CC := gcc
GNUSTEP_LIBS = $(shell gnustep-config --base-libs)
GNUSTEP_FLAGS = $(shell gnustep-config --objc-flags)
.PHONY = clean all
PROGS = hello class_hello
all: $(PROGS)
%.o: %.m
$(CC) $(GNUSTEP_FLAGS) -c $^
hello: hello.o
$(CC) -o $@ $^ $(GNUSTEP_LIBS)
clean:
rm $(PROGS) *.o
然后运行:
make
现在使用以下命令运行可执行文件:
./hello
输出 -> 2014-11-14 15:47:32.628 hello[2786] Hello, World!
输出的格式是这样的-
<DATE> <TIME> <NAME OF THE EXECUTABLE[NUMBER]> <ACTUAL OUTPUT>
【讨论】:
当然。 LLVM/Clang 可作为大多数 Linux 发行版的软件包使用,是学习 Objective-C 的绝佳环境。
但是,您很快就会碰壁。也就是说,iOS(或 OS X)开发堆栈——框架、API 和工具——不适用于 Linux,因此,当你想做任何图形化的事情时,你就不走运了。
有些项目 -- GNUStep、Cocotron -- 是一组类似 Cocoa 的 API 的实现(直接从 OpenStep 派生),这些项目非常好学,但您仍然不会编写真正的 iOS / OS X 应用程序。
【讨论】:
不幸的是,要为 iOS 开发,您的机器上需要 OS X。另一种方法是在您的计算机上创建一个虚拟机并在其上安装 OS X 和 XCode。我听说这个解决方案非常适合人们,只要他们的计算机可以处理它。
有关创建“hackintosh”的更多信息,请访问here.
【讨论】: