Linux下的objective-c 的简单使用和一些问题

Linux中用Makefile编译Objective-c 1、安装GNUstep     sudo apt-get install build-essential     sudo apt-get install gobjc     sudo apt-get install gobjc++     sudo apt-get install gnustep-devel 如果你想一下子把GNUstep的东西都装上,一句sudo apt-get in 阅读详情

我是ubuntu 16.04,官方教程如下:https://www.techotopia.com/index.php/Installing_and_Using_GNUstep_and_Objective-C_on_Linux

使用这个教程必须安装

sudo apt install gobjc gobjc++ gnustep-make gnustep-devel

安装完后配置编译环境:

. /usr/share/GNUstep/Makefiles/GNUstep.sh

然后编写代码hello.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` -lgnustep-base hello.m -o hello

错误如下:

/test/object-c/hello.m:4:对‘objc_get_class’未定义的引用
/test/object-c/hello.m:4:对‘objc_msg_lookup’未定义的引用
/test/object-c/hello.m:4:对‘objc_msg_lookup’未定义的引用
/test/object-c/hello.m:5:对‘NSLog’未定义的引用
/test/object-c/hello.m:6:对‘objc_msg_lookup’未定义的引用
/tmp/ccFeqgkG.o:在函数‘__objc_gnu_init’中:
/test/object-c/hello.m:9:对‘__objc_exec_class’未定义的引用
/tmp/ccFeqgkG.o:(.data.rel+0x0):对‘__objc_class_name_NSConstantString’未定义的引用
/tmp/ccFeqgkG.o:(.data.rel+0x8):对‘__objc_class_name_NSAutoreleasePool’未定义的引用
collect2: error: ld returned 1 exit status

 

网上搜了一下,解决方案就是如下:

gcc `gnustep-config --objc-flags` -Wl,--no-as-needed -lobjc -lgnustep-base hello.m -o hello.o

或者

gcc hello.m `gnustep-config --objc-flags` -lgnustep-base `gnustep-config --objc-libs` -Wl,--no-as-needed -o hello.o

比原来多添加了-Wl,--no-as-needed -lobjc

最后使用 ./hello.o执行就可以了

这个问题就解决了:

参考:https://blog.youkuaiyun.com/SweetTool/article/details/89609214

https://stackoverflow.com/questions/11425120/objective-c-on-linux-compile-error

 

 

搭建Linux的Objective-C开发环境 不需要苹果机也能开发Mac OS X程序,也可作为iPhone开发Objective-C语言的练习环境。 立即下载

相关推荐

【CATIA的二次开发38】对象Selection交互选择部分方法介绍01

在CATIA V5的VBA开发中,Selection对象是用户交互的核心组件,用于管理用户在图形区域或特征树中的选择操作。Selection 对象是 CATIA VBA 中的中央交互枢纽,充当用户界面与程序逻辑之间的桥梁。它代表当前在图形区域或特征树中被选中的元素集合,是自动化操作的基础。

学习共勉:不积跬步,无以至千里; 不积小流,无以成江海。 1344

linux objective c,Objective-C入门简介

在学习C的同时,我们可以对比着来进行Objective-C,本篇文章主要对Objective-C进行一下简单的介绍,以对Objective-C有一个大致的了解。Objective-C是一门基于C语言的面向对象语言,可以说是ANSI C的超集,而且是严格意义上的超集,它是在C语言的基础上加上了面向对象的技术,所有C语言可以实现的它都可以实现,反之则不成立,如果你接触过C语言那么理解Objective...

weixin_35899324的博客 371

解决用加速器以后,电脑无法连接网络的问题

相信很多朋友也遇到过,用加速器以后,电脑网络直接断了,或者访问外网时打不开的情况解决办法是。

qq_46368050的博客 1万+

如何在linux上构建objective-c程序

objective-c不是

享受开发,颠倒银河 6411

MTEX包在Matlab中实现从EBSD数据生成Abaqus网格与晶粒取向:一种对用户材料旋转矩阵分量实践的全面指南

此教程提供了一种使用MTEX Matlab包处理EBSD数据的方法,并生成Abaqus输入文件,这对于进行多晶体有限元分析具有极大的帮助。但值得注意的是,这只是一个基本的例子,实际应用中可能需要根据您的实际需求进行调整。MTEX包还提供了许多其他的功能,可以进行更复杂的分析和处理,我非常推荐您去探索。希望这篇文章能对您有所帮助,如果您有任何疑问或建议,欢迎留言交流。在接下来的文章中,我将会介绍更多关于MTEX的高级功能,敬请期待。– (完)–

qq_38334677的博客 4439

【unity游戏开发入门到精通——UGUI】UI控件 —— Toggle开关切换控件

【unity游戏开发入门到精通——UGUI】UI控件 —— Toggle开关切换控件

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1848

Linux 搭建 Objective-C开发环境

1.打开fedora终端,切换到root #su 2.使用yum安装gnustep #yum install gnustep* 3.使用yum安装gcc-objc #yum install gcc-objc 4.在系统~/.bashrc文件中指定GNUSTEP MAKEFILES的目录 #vi ~/.bashrc # 进入文件,添加下面两行

Frank.Zhang的专栏 715

基于学术研究于NASA官网GPM卫星数据下载详细教程

基于学术研究于NASA官网GPM卫星数据下载详细教程

珞瑜的博客 8658

linux支持的编译器,Linux上的编译器是否支持Objective-C块?

如何在linux上编译以下代码? 使用Ubuntu 10.10(Maverick Meerkat)。#include #include int main() {void (^block)() = ^{printf("Hello world");};block();}我试过了:gcc -x objective-c t.c得到了:t.c: In function 'main':t.c:5: error...

weixin_31556767的博客 159

3. Matérn协方差模型与随机偏微分方程

对应的高斯马尔可夫随机场 (GMRF)可以通过使用某种随机偏微分方程(SPDE)明确构造,当由高斯白噪声驱动时,随机偏微分方程的解是具有 Matérn 协方差函数的高斯场(GF)

weixin_40614311的博客 1748

使用openclaw出现blocked URL fetch (url-fetch) reason=Blocked: resolves to private/internal/special 解决方案

本文主要介绍了使用openclaw出现blocked URL fetch (url-fetch) target=https://news.google.com/search reason=Blocked: resolves to private/internal/special-use IP address 解决方案,希望能对使用xx的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 12万+

linux 下配置objectiveC环境记录

参考http://bollaxu.iteye.com/blog/1102977,以及http://www.techotopia.com/index.php/Objective-C_2.0_Data_Types安装程序,发现没有startup安装程序包,所以遇到了下面这两个连接的问题 http://bbs.youkuaiyun.com/topics/350214265 http://bbs.youkuaiyun.com

sinovoice的专栏 830

DFIG风电场经LCC-HVDC外送系统SIMULINK建模与仿真

本文基于MATLAB/Simulink平台构建了DFIG风电场经LCC-HVDC外送系统的仿真模型。系统采用1000MW聚合DFIG模型与双极12脉动LCC-HVDC连接,详细阐述了参数设计、控制策略及接口协调方法。重点解决了风电场无功能力不足、功率波动影响换相等关键技术问题,为大规模风电基地外送提供了仿真研究框架。模型整合了官方DFIG和HVDC详细模块,通过参数缩放和控制系统优化,实现了完整系统的动态仿真分析。

huanghm88的专栏 122

ubuntu下配置object c开发环境

linux下的object c环境配置其实比较简单,

xiaoyaoxiaonizi的专栏 526

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

在Linux上安装和使用GNUstep和Objective-C

The basics of Objective-C are supported by the GNU compiler collection. In order to utilize the full power of Objective-C together with the

NickTang的专栏 1万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

在 Windows 上安装和使用 GNUstep编译Objective-C

除了在 Mac 系统使用 Objective-C,你还可以在 Windows 上下载并安装 GNUstep 和 Objective-C 环境,接下来我们就介绍详细的安装和使用的步骤。 下载 GNUstep GNUstep 环境可通过 Windows 下的 MinGW 工具来使用,MinGW 是 GNU 编译工具在 Windows 下的移植版本。安装 GNUstep 包括安装 MinGW 和

811

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Linux下学objective c的好办法,在ubuntu下使用GNUstep make编译objective c

最近在ubuntu学习 objective c,于是找到了下面的办法 ,懒得翻译了,哈哈,这样学习objective c就暂时不用弄虚拟机了。 Objective C is the primary language for developing software for the Apple Mac. In fact, apparently you're onl

西涛offbye-移动全栈技术博客 1961

linux 下编写Objective-C

按照这篇文字安装好环境。http://blog.youkuaiyun.com/lmss82/archive/2010/02/06/5294714.aspx hello.m代码编写。 #import int main(int argc,const char *argv[]){    NSLog(@"Hello,Objective-C");    return (0);}//m

乐于改变 4632

如何在Win上安装和使用GNUstep和Objective-C

http://jingyan.baidu.com/article/4f34706e89df2ae387b56def.html 除了在Mac 系统上使用Objective-C,你还可以在Windows 上下载并安装GNUstep 和Objective-C 环境,接下来我们就介绍详细的安装和使用的步骤。。 方法/步骤 下

_Witch__的专栏 1171

Objective-c in Ubuntu Linux

Objective-c in Linux, very common question Many times i stumbled with this question how can i compile my objective-c code in ubuntu or in linux and the Answer is “GNUSTEP” . It’s inherited from Apple

xiaoshang的专栏 802

在linux环境下的Objective-c程序编译

@font-face { font-family: "Times New Roman"; }@font-face { font-family: "宋体"; }p.p0 { margin: 0pt; text-align: justify; font-size: 10.5pt; font-family: "Times New Roman"; }div.Section0 { page: Section...

weixin_30778805的博客 246

Objective-C on Windows

转一篇文章 转自:http://blog.youkuaiyun.com/waden/article/details/5765294 ---------------------------------------------------------------------------------------------------------------- 最近打算针对iPhone、iPod to

china_lzn的专栏 1282
上一篇: 解决隐藏Android系统鼠标光标问题以及隐藏状态栏问题
下一篇: Android开发记事本--Gradle内添加svn版本号作为APP的版本
葫芦娃二娃
博客等级 码龄15年 1850粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值