首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Windows上使用GNUstep编译Objective-C时无法找到标准库

在Windows上使用GNUstep编译Objective-C时无法找到标准库,这可能是因为GNUstep在Windows上的支持有限,或者缺少一些必要的依赖库。以下是一些可能有用的解决方案:

  1. 使用MacOS或Linux操作系统进行开发,这样可以充分利用GNUstep的支持,并且可以更好地利用Objective-C的特性。
  2. 如果必须在Windows上进行开发,可以考虑使用其他的跨平台开发工具,例如Xamarin或React Native,这些工具可以让你使用Objective-C或其他语言进行跨平台开发,并且可以更好地支持Windows平台。
  3. 如果你确实需要在Windows上使用GNUstep,可以尝试手动安装缺少的依赖库,或者使用其他的工具或软件来协助开发,例如Cygwin或MinGW等。

总之,在Windows上使用GNUstep编译Objective-C时可能会遇到一些问题,建议使用更加成熟和完善的开发工具和平台进行开发。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Ubuntu下如何安装并使用Objective-C

Objective-C标准C完美兼容,而在此基础又加上了将面向对象的基础概念诠释得最好的SmallTalk元素,使得它既简洁、又灵活,绝对是做商业化项目的首先编程语言工具。...因此,不管是Unix/Linux下还是OS X/iOS下,使用Objective-C编程就是一种享受。...)/tool.make   由于我们源代码中使用了C11标准中才引入的Unicode前缀字面量表达式——u'加',表示一个UTF-16字符,因此我们GNUmakefile中也加入了...-std=gnu11这个编译选项来使得编译使用最新的C11标准与GNU规范语法扩展。...SEC11 这里注意,对于第一个链接中,如果直接在命令行敲gcc,是无法成功通过连接的,因为gnustep都找不到。

81500

《Objective-C-高级编程》干货三部曲(一):引用计数篇

非自己持有的对象无法释放。 ARC机制下,编译器就可以自动进行内存管理,减少了开发的工作量。...ARC下的规则 我们知道了ARC机制下编译器会帮助我们管理内存,但是在编译期,我们还是要遵守一些规则,作者为我们列出了以下的规则: 不能使用retain/release/retainCount/autorelease...不能使用retain/release/retainCount/autorelease ARC机制下使用retain/release/retainCount/autorelease方法,会导致编译器报错...不能使用NSAllocateObject/NSDeallocateObject ARC机制下使用NSAllocateObject/NSDeallocateObject方法,会导致编译器报错。 3....对象型变量不能作为C语言结构体的成员 C语言的结构体如果存在Objective-C对象型变量,便会引起错误,因为C语言规约没有方法来管理结构体成员的生存周期 。 8.

1.7K40

iOS底层原理(二):运行时研究(一)

运行 Objective-C扩展了C语言,并加入了面向对象特性和Smalltalk式的消息传递机制。而这个扩展的核心是一个用C和编译语言写的Runtime。...这两个版本最大的区别在于当你更改一个类的实例变量的布局早期版本中你需要重新编译它的子类,而现行版就不需要。 Runtime基本是用C和汇编写的,可见苹果为了动态系统的高效而作出的努力。...苹果和GNU各自维护一个开源的运行时 / GNUStep版本,这两个版本之间都在努力的保持一致。 平时的业务中主要是使用官方Api,解决我们框架性的需求。...你只需编写和编译OC代码就能使用它。 当你编译包含OC类和方法的代码编译器创建用来实现语言动态特性的数据结构体和方法调用。...,为什么还要取一次内存,要知道OC是动态语言,我们执行这个获取imp的时候,外界开锁,解锁的时候是可以访问的,动态操作) 如果没有从缓存中查找到,则从方法列表中获取方法 如果还没有,就从父类缓存或者方法列表获取小鬼

30540

# iOS中的KVO底层实现

原理:当第一次观察某个类的实例对象,会动态创建一个该类的子类,然后将该对象的isa修改为这个新的子类的Class,重写被观察的属性的 set方法,然后修改属性前后,调用观察者的接口来通知观察者。...1.GNUstep中的KVO实现 GNUstepObjective-C中大部分实现的前身,虽然OCGNUstep的基础做了许多更新和优化,但是很多基本逻辑思路是一致的。...这个NSKeyValueObserving.h中暴露的API与Objective-C中Foudation中NSKeyValueObserving.h中的API基本是一致的。...我们可以【base/Source/Foundation/KVO】目录下找到NSKeyValueObserving.m。...class_getSuperclass(class_getSuperclass(object_getClass(self))); } 这几个函数的实现都很简单,主要作用就是为了让开发者感知不到GSKVOxxx类的存在,因为当开发者使用这些函数

1.2K30

Swift 2023:所有权、宏和 C++ 互操作

Rust 使用了第三种方法:内存是通过一个所有权系统来管理的,该系统有一套编译器检查规则。如果违反了任何规则,程序就不会编译。所有权的所有特性都不会拖慢程序运行时的速度。...这些控制将实现在内存中处理数据的新方法,将当前“不安全”结构的性能与 Swift 标准功能的安全性相结合。 Swift 另一个有前途的领域是创建一个过程宏系统,以创建高级和 DSL。...正如苹果工程师 Tony Parker Swift 论坛所解释的那样,性能方面带来的好处是非常显著的。...Foundation 最初是用 Objective-C 编写的,很大程度上利用了它的动态特性,由于 Swift 与 Objective-C 运行时的互操作性,Foundation 目前可以用于运行苹果操作系统的...不过,对于其他支持 Swift 但只有原始 GNUstep Objective-C 运行时的平台(如 Linux)来说就不是这样了。

1.3K10

苹果宣布使用Swift全面重写Foundation框架

正如苹果工程师 Tony Parker Swift 论坛所解释的那样,性能方面带来的好处是非常显著的: 使用 Swift 重新实现的日历应用的速度是 C 的 1.5 到 18 倍(创建、日期计算等各种测试基准中调用...Foundation 最初是用 Objective-C 编写的,很大程度上利用了它的动态特性,由于 Swift 与 Objective-C 运行时的互操作性,Foundation 目前可以用于运行苹果操作系统的...不过,对于其他支持 Swift 但只有原始 GNUstep Objective-C 运行时的平台(如 Linux)来说就不是这样了。...这将有机会删除一些目前可以直接由 Swift 语言和标准提供的特性,如 NSCoding 和 NSKeyedArchiver,取而代之的是 Codable,或者 Lock、OperationQueue...这一声明 Swift 论坛引发了许多评论,其中大多数都暗示重新考虑现有的几个 API 的便利性,确保 Swift 类型(如 Codable)或结构化并发足够强大,以便在核心基础层完全取代 Obj-C

88530

编译原理基础

gcc 和 g++ 的主要区别如下: 使用 gcc 编译 cpp 文件可能会报错,因为 gcc 编译文件不会自动链接标准 STL,而 g++ 会,为了能够使用 STL,需要添加参数 -lstdc++...gcc 在编译 c 文件,可使用的预定义宏是比较少的。...MinGW是从Cygwin(1.3.3版)基础发展而来。 GCC 支持的语言大多在 MinGW 也受支持,其中涵盖 C、C++、Objective-C、Fortran 及 Ada。...对于 C 语言之外的语言,MinGW 使用标准的 GNU 运行库,如 C++ 使用 GNU libstdc++。但是 MinGW 使用 Windows 中的C运行库。...这同时造成了 MinGW 开发的程序只能使用 Win32API 和跨平台的第三方,而缺少 POSIX 支持[3],大多数 GNU 软件无法不修改源代码的情况下用 MinGW 编译

85710

移动端跨平台技术总结

Xamarin studio 比起 Xcode 和 Android Studio 功能上还有很大差距 Objective-C 编译Windows Phone 微软知道自己的 Windows Phone...太非主流,所以很懂事地推出了将 Objective-C 项目编译Windows Phone 运行的工具,目前这个工具的相关资料很少,鉴于 Visual Studio 支持 Clang,所以极有可能是使用...前面提到微软提供了将 Objective-C 编译 Windows Phone 运行的工具,在对 Android 的支持我没找到的详细资料,所以就暂时认为它是虚拟机的方式,从 Astoria 项目的介绍看它做得非常完善...,所以无法使用 JIT 来优化性能,如果 iOS 开放,或许哪天有人开发一个像微软那样能直接在 iOS 运行 Android 应用的虚拟机,就不需要跨平台开发了,大家只需要学 Android 开发就够了...React Native相比传统Objective-C和UIView,学习成本更低了,熟悉JavaScript 的开发者可以半天写个使用标准UI界面,而且用XML+CSS 画界面也远比 UIView

1.6K50

16道面试官必问你必须会的iOS面试题

我们开源的 YTKNetwork 网络的源码中,就有这样的场景。...剩下我们要做的,就是引用计数变成 0 的时候,去这个全局的字典里面,找到所有的 weak 指针,将其值设置成 nil。如何做到这一点呢?Friday QA 介绍了一种类似 KVO 实现的方式。...设计之初,二者都是作为 C 语言的面向对象的接班人,希望成为事实标准。最后结果大家都知道了,C++ 最终胜利了,而 Objective-C 之后的几十年中,基本上变成了苹果自己家玩的玩具。... Objective-C 语言中,每一个类实际也是一个对象。每一个类也有一个名为 isa 的指针。...如果第 1 步无法找到未标记的坐标,则结束。 虽然思路简单,但是实现起来代码量也不算小。这里有一些小技巧: 我们可以将上下左右四个方向的偏移量保存在数组中,这样计算位置的时候,写起来更简单一些。

2.2K50

编程能力七段论

C++,Java,C#视之为命脉的接口/基类,动态语言这里都视如无物!   缺点是:   1,如果类型不对,编译器也无法找到错误,而是运行时程序崩溃。   ...甚至,Objective-C一开始的实现,就是一个C语言的预编译器。Objective-C坦白讲,除了添加的语法不太符合C流外,实际其面向对象系统设计是相当精妙的。...模板编程的需求,是C++开发容器的时候发明的。因为容器需要保存任意类型的对象,因此就有了泛型的需求。   C++的模板编程,是在编译,根据源码中的使用情况,创建对应类型的代码。...知道编译器和编程语言运行时工作原理,就能快速根据编译错误和警告信息修改代码。   知道操作系统底层运行机制,就能快速找到运行时错误的问题根源。如,有一次我编写一个windows升级服务程序。...X86芯片在设计没有考虑虚拟化。因此会有所谓的“虚拟化漏洞”出现。就是说,一些CPU特权指令执行时,虚拟机环境下不会抛出异常,因此就无法切换到Host。这样,X86芯片无法运行虚拟机。

1.1K50

Kotlin 1.4-M1 现已发布!

标准中的渐进式变更:完成弃用周期并弃用一些额外的部分。 您可以变更日志中找到完整的变更列表。我们要一如既往地感谢外部贡献者。... Kotlin 1.1 中,此运算符被 rem() 函数替代。现在,我们将它从标准中完全移除。...现在,它仅包含可以在所有三个目标平台(JVM、JS、Native)使用的成员,这样您就可以确保同一代码可以用于任何一个平台。 use() 和时间测量函数的新协定 我们将在标准中扩大协定的使用。... Kotlin/JS 的两种后端之间缺少这种兼容性意味着使用新的 IR 编译器后端创建的无法用于默认后端,反之亦然。...编译为 Swift 或 Objective-C 框架,拥有或要继承 @Throws 注解的函数 Objective-C 中表示为产生方法的 NSError*, Swift 中表示为 throws

3.4K20

聊聊移动端跨平台开发的各种技术

Xamarin studio 比起 Xcode 和 Android Studio 功能上还有很大差距 Objective-C 编译Windows Phone 微软知道自己的 Windows Phone...太非主流,所以很懂事地推出了将 Objective-C 项目编译Windows Phone 运行的工具,目前这个工具的相关资料很少,鉴于 Visual Studio 支持 Clang,所以极有可能是使用...前面提到微软提供了将 Objective-C 编译 Windows Phone 运行的工具,在对 Android 的支持我没找到的详细资料,所以就暂时认为它是虚拟机的方式,从 Astoria 项目的介绍看它做得非常完善...从 Sky SDK 的代码看,它其中有非常多 Web 的痕迹,比如支持标准的 CSS、很多 DOM API,但它编译后的体积非常小,libsky_shell.so 只有 8.7 MB,我之前尝试精简过...综合来看,目前 Dart 的这两个方案都非常不成熟,Sky 虽然在技术看很强大,但 Dart 语言目前接受度非常低,比起它所带来的跨平台优点,它的缺点更大,比如无法使用第三方 Native UI

1.5K21

聊聊移动端跨平台开发的各种技术

Xamarin studio 比起 Xcode 和 Android Studio 功能上还有很大差距 Objective-C 编译Windows Phone 微软知道自己的 Windows Phone...太非主流,所以很懂事地推出了将 Objective-C 项目编译Windows Phone 运行的工具,目前这个工具的相关资料很少,鉴于 Visual Studio 支持 Clang,所以极有可能是使用...前面提到微软提供了将 Objective-C 编译 Windows Phone 运行的工具,在对 Android 的支持我没找到的详细资料,所以就暂时认为它是虚拟机的方式,从 Astoria 项目的介绍看它做得非常完善...从 Sky SDK 的代码看,它其中有非常多 Web 的痕迹,比如支持标准的 CSS、很多 DOM API,但它编译后的体积非常小,libsky_shell.so 只有 8.7 MB,我之前尝试精简过...综合来看,目前 Dart 的这两个方案都非常不成熟,Sky 虽然在技术看很强大,但 Dart 语言目前接受度非常低,比起它所带来的跨平台优点,它的缺点更大,比如无法使用第三方 Native UI

2.2K50

从预编译的角度理解Swift与Objective-C及混编机制

第三个问题,引入系统的头文件,Clang 会将前面提到的目录遍历完才进入搜索系统的路径,也就是 $(SDKROOT)/System/Library/Frameworks(framework directory...接着上面的话题来说,所以说 Static Library 的情况下且以 #import 这种标准方式引入头文件,开启 Use Header Map 并不会提升编译速度,而这同样是 Xcode...Objective-C 代码进行交互,因为大部分系统,例如 UIKit 等,还是使用 Objective-C 编写的。...这个转换过程并不是什么高深的技术,它只是在编译的硬编码,如果感兴趣,可以 Swift 的开源中的找到相应的代码 - PartsOfSpeech.def。...不使用 Framework 的情况下且以 #import 这种标准方式引入头文件 CocoaPods 使用 hmap 并不会提升编译速度。

2.1K31

OC底层探索15-Strong和Copy区别浅谈OC底层探索15-Strong和Copy区别浅谈

所以日常使用时,建议多使用_strongStr这种方式.(虽然性能提升的非常有限,但态度要有【狗头】) 通过clang来查看copyStr变量的两种不同写法编译后的源码: ?...结论: 观察下来使用copy或strong对于编译后的源码并没有发现什么本质的区别,那问题一定是出在set方法。...源码中增加断点,继续深入 ? 在这个位置发现了关键,使用copy修饰属性之后。...NSMutableString并没有找到对应的copyWithZone,继续向上找到父类NSString的copyWithZone。...通过第6步可知,就是完成了一次深拷贝,从而生成了一个新的对象,并且copy的对象指向这个新对象; 场景1、2,新值的类型是NSString,copy进行了浅拷贝 一般声明不可变类型,就是不希望它变化

84610

干货 | 携程机票 App KMM 跨端生产实践

3)我们 Kotlin/Native 无法自己编写基于池化技术的协程调度器,因为它可能会因为挂起与恢复所在线程不同而 crash。...而在 iOS source set 的实现中则是先使用协程标准库函数 suspendCoroutine 将协程挂起,然后将传入的参数全部做对象子图分离,接着使用系统提供的 GCD 执行异步任务, GCD...官方最初的回答是采用锁的方式来保证并发安全容易出错,因此想把对象跨线程访问的操作全部显式的暴露在编译期,但这造成了几个问题: 1)传统的移动开发人员一无法适应。...Kotlin 类继承自NSObject)都无法通过编译,但是 Xcode 工程中却可以。...这个 class 无法找到的 NoClassDefFoundError。

3.3K10

研读《程序员的自我修养—链接、装载与

前言 《编译与链接过程的思考》 《静态与动态的思考》 写完上面两篇思考之后,仔细研读《程序员的自我修养—链接、装载与》,对编译、链接、装载、静态和动态有连贯的认知。...编译之后会产生目标文件。 目标文件:编译编译源代码后产生的文件,没有经过链接的过程,某些符号还没有调整过,Windows下的.obj文件,Linux下的.o文件,Unix的.out文件。...静态链接 静态链接:链接器链接将静态合并到可执行程序。...结果思考 Xcode工程link设置的动态,会在程序启动加载到内存,即使你没有用到这个的函数;(测试代码中没有用到BLib动态的代码,但是启动即加载了BLib) dispatch_after...代码可以Github找到

1.5K70
领券