Применяется ли Objective C в Linux?
Есть ли какие-то серьёзные программы, написанные на Objective C, притом изначально не для маков, то есть, не портированные с них. Особо интересно, если они даже не имеют мак-версии.
Иначе говоря, представляет ли этот язык интерес для разработчика вне джобсовых платформ или портирования с них.
Нет. Так исторически сложилось.
Он разве ещё не протух?
С точки зрения маководов, протух. А самому языку-то что станется?
А зачем на C++ писать? Вот я и пытаюсь понять, может кому-то этот язык сам по себе кажется хорошим.
Compiling Objective-C project on Linux (Ubuntu)
How to make an Objective-C project work on Ubuntu?
I’ve tried two approaches to compile it:
I created a GNUmakefile Makefile:
So in both cases compiler gets stuck at
Do you have and idea how to resolve this issue?
6 Answers 6
It’s right. In both cases you did not include Fraction.m in your list of files to be compiled, so it can’t find the implementation of the class Fraction
From the comment, this command works
I am not an expert at writing the make files like that, I find simply typing the following works on ubuntu quite well:
I am using it on this project:
If the above GCC command does not work you have not installed enough packages, use apt-cache to search for more gcc and objective c packages to install (I just installed more packages that looked relevant at random until it worked)
the make file:
The approach I just got working was (in Ubuntu, which is closely related to Debian):
- Use Synaptic to install all likely-looking GnuStep packages;
- Source ( . ) the GnuStep startup script, /usr/share/GNUstep/Makefiles/GNUstep.sh (this can go into .profile or .bashrc or something so you don’t have to do it manually every time)
- Create a GNUmakefile according to the instructions in A First Tool
This allowed me to successfully build command line programs.
Compiling Objective-C Application on Linux
I’ve written a command line application in XCode using Objective-C. When added to my /usr/local/bin path is works as expected in OS X. However, I would like to make the binary work on Linux.
The binary relies on an Objective-C framework. How would I go about doing this? Or is it even possible?
1 Answer 1
Yes, it should be possible by installing GNUstep: http://www.gnustep.org/
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 Cocoa /openStep environments on Linux, and to work with many of the examples covered in this book, it is necessary to install gcc, the gcc Objective-C support package and the GNUstep environment.
The gcc Objective-C support can be installed on Linux simply by installing the gcc-objc package which is available with all Linux distributions. There are, however, two different paths to installing GNUstep. On those Linux distributions for which pre-built GNUstep packages are provided this is simply a matter of issuing the appropriate command to install GNUstep. On Linux distributions for which pre-built packages are not available, the process involves downloading the GNUstep source code and then building and installing the packages manually.
Objective-C в Linux
Накопил лишние n-рублей, зашел в книжный магазин обнаружил там книжку по сабжу, показалось вкусной к тому же вспомнил что в GCC есть поддержка данного языка. Дома меня ждало разочарование, как я понял эппловцы отказались от поддержки GCC и усилено пропиливают clang, ни одной вменяемой IDE для данного языка под линукс я не нашел, да и книга оказалась весьма уныла. В общем, тем кто знаком с сабжем, посоветуйте бумажный материал и вменяемое IDE если есть под Objective-C.
Перемещено mono из talks
нету. Да и вообще, без Кокоса он более чем уныл. Есть кокотрон, но по сайту чото не заметно, чтобы он был сильно живым.
Во-первых, иде не нужны, особенно, если ты только начинаешь изучать язык. Редактора с подсветкой кода более, чем достаточно.
Во-вторых, зачем тебе именно бумажная книга? В айбуксторе полно бесплатных пдфок и по языку, и по библиотекам. Да и в Мак Девелопер Центре немало материалов для начинающих.
вот в этой книге автор учитывает как особенности Apple, так и GNUStep.
На их сайте нет такого простого и веслого руководства как Learn Objective-C on the Mac
кокотрон — это кривая сборка гнустепа под винду.
на линуксе тоже собирается и работает
а что там добавилось для linux, по сравнению с gnustep?
Objective-C и сам уныл, требует очень много текста вообще и приходится постоянно нарушать закон Деметра в частности. От безопасная посылки сообщений nil’у на практике мало толку. Категории — классная штука, но ради одной няши столько проблем огребать.
Его ценят за фреймворки, а фреймворки эти работают толком лишь в iOS/MacOSX, в конце концов у linux есть Python и Qt — гораздо более мощные потенциально.
в конце концов у linux есть Python и Qt
можно подумать их на макоси нет
не могу пользоваться emacs, меня от него трясет.
мне намного приятнее читать книгу, что то выделять там подчеркивать, как то лучше усваиваю.
Одна из причин заинтерессованности именно Objective-C стало его наличие в buildroot, Python и Qt, в частности второе исполльзовать на встраиваемых устройствах затруднительно из-за ресурсоемкости.
не знаю, не пробовал -)
Это с легкостью выполняется в okular.
А IRL книжный магазин, в котором помимо художественной литературы и вендовса для чайников есть еще тех. лит-ра, это хорошо. Даже завидую немножко. ☺
я вообще не понимаю почему на лоре кокотрон упоминают чаще, чем гнустеп, несмотря на то что первый — это клон второго в стиле дениса попова.
Или ты гурман, или ключевое слово «показалось» 🙂
О, подтянулись знатоки Objective-C, ну давай разбираться.
Это называется самокомментирование. Мне приятнее читать код, где пишут
приходится постоянно нарушать закон Деметра в частности
Ты точно про Objective-C говоришь?
Его ценят за фреймворки, а фреймворки эти работают толком лишь в iOS/MacOSX
Язык изначально разрабатывался в комплекте с окружением из фреймворков. И никто никогда не пользовался Objective-C напрямую без Foundation и других основных фреймворков.
Не «язык плохой, а фреймворки хорошие», а язык и фреймворки, в этом случае, две части одного продукта, которые развиваются совместно.
Когда-то уже задавался поиском IDE ([Objective-C]IDE).
Не взлетело.
«весь мир пришел с винды» ))
И никто никогда не пользовался Objective-C напрямую без Foundation и других
исполльзовать на встраиваемых устройствах затруднительно из-за ресурсоемкости
Какого уровня устройства? Мы используем Qt на армах — все летает.
Если бы ты прежде чем делать выводы прочитал, например, Cocoa Programming Developer’s Handbook, то все твои вопросы отпали бы сами собой.
Пока это выглядит как «не читал, но осуждаю».
Мы используем Qt на армах — все летает.
ARM9, 64m, можно но Qt это же не ЯП.
да и книга оказалась весьма уныла
каммент за зверски убитые деревья
ресурс возобновляемый как и человеческая кожа.
каммент за загрязнение природы с этих самых бумажковых фабрик (три штуки в автобусной доступности)
Qt подразумевает C++
спасай бобра @ начинай с себя)
Мне приятнее читать код, где пишут
[map setObject: value forKey: key]
чем где
map.put(v,k);
компактно, понятно и читабельно
Эппл за программирование на человеческих языках 🙂
Ага, а в добавок, переопределение операторов рождает кучу проблем.
Ага, а в добавок, переопределение операторов рождает кучу проблем.
не больше чем виртуальные методы, т.е. если мозги есть — проблем нет
ИМХО это из-за того, что была стать на Хабре о сборке этого «добра»(кокотрон) на русском языке. по ГНУстеп русские статьи — мохнатых годов.
Многие его ценят за наличие в нем ООП, в отличие от С++.
А, ведь вы же ещё не знаете про фичи clang 3.2. Ничего, вот пройдёт два года и все фанаты ObjectiveC будут рассказывать как круто писать mydictObjective c on linux = value.
А вы пробовали в делегате UITextField извлекать полный текст при изменении каждого символа, причём без обращения к свойству text, которое ещё не изменилось?
Кстати, самодокументация в божественных языках выглядит вот так:
Apple старается как может, и от путаницы с параметрами отучивает (хотя ObjC позволяет писать по-пацански, то бишь [nsobj param1, param2, param3]), и анализатор запилила неслабый, и команду llvm из иллинойского университета наняла. Но при чём тут язык?