LINUX.ORG.RU

[MAC] А есть ли возможность скрестить Objective-C и Qt?

 


0

1

Вопрос в следующем.


Можно ли в Mac Os X построить написание программ так, чтобы этот привет из 70-х (Objective-C) использовать только для Cocoa интерфейса, а все внутренности писать на Qt?

По какому принципу можно (и можно ли) так построить проект?

А вот нафига?

C++ + {Qt|Boost} позволяет писать как на Хаскеле: сухо и комфортно.

anonymous
()

или как-то криво задан вопрос или я ничего не понял?

Вы хотите использовать Qt библиотеки из objC?

visual ★★★
()

Есть готовые генераторы оберток для взаимодействия ObjC и C++.

А вообще — взаимодействие возможно через extern «C» функции.

note173 ★★★★★
()

опишите кишки, те внутренности, которые вы хотите писать на Qt.

nikitos ★★★
()

Писать негуй на Qt? Школоплюсатники скоро даже ползать без костылей не смогут, не то что ходить.

baverman ★★★
()
Ответ на: комментарий от dib2

а пердонщики до сих пор уверены что Qt - это GUI-only?

Странный вывод. Хотя в духе школоло, они тоже не умеют переваривать прочитанное.

baverman ★★★
()
Ответ на: комментарий от dib2

Сначала покажи как на сервер водрузить кутевую негуевую поделку без иксов, тогда и поговорим, родной. Gtk и то модульней. glib, pango, cairo, собственно виджеты (gtk). А не эти мифические qt-core сотоварищи, все о них знают, да никто не видел.

baverman ★★★
()
Ответ на: комментарий от baverman

собственно qtcore и предназначен для этого, и справляется с задачей вполне себе хорошо.
водрузить ее можно хоть бы и так: apt-get install libqtcore4
В Debian stable qt core, script, xml, dbus, sql, test, network не зависят ни от GUI ни от X11, имея довольно лаконичный список зависимостей при очень широкой функциональности.

у qt конечно есть крайне некрасивые решения, и на его месте чаще стоит буст, но, имхо, все не настолько принципиально

dib2 ★★★★★
()
Ответ на: комментарий от dib2

В Debian stable qt core, script, xml, dbus, sql, test, network не зависят ни от GUI ни от X11

Не смог на packages.debian.org найти кутешные пакеты. Ткни, пальцем, будь добр.

Если это правда, то дебианщики, как всегда, молодцы. В CentOS с этим всё грустно.

baverman ★★★
()
Ответ на: комментарий от baverman

Просто мало кто из майнтейнеров осилил распределить библиотеки по разным пакетам, ведь собираются они вместе.

Kosyak ★★★★
()
Ответ на: комментарий от Kosyak

Просто мало кто из майнтейнеров осилил распределить библиотеки по разным пакетам

Это самая невинная и легкая часть. Вот прописать потом правильные зависимости для тысяч других пакетов — собственно поэтому qt такой монолит.

baverman ★★★
()
Ответ на: комментарий от Kosyak

Просто мало кто из майнтейнеров осилил распределить библиотеки по разным пакетам, ведь собираются они вместе.

В Debian осилили.

Begemoth ★★★★★
()
Ответ на: комментарий от baverman

>Сначала покажи как на сервер водрузить кутевую негуевую поделку без иксов

у меня на дебиановом сервере такая работает. Писалось вообще изначально под вендовый сервер; после того, как венду успешно выкинули на помойку, тулза спокойно перекочевала на линух. Все ставится и работает без всяких бубнов и костылей

nu11 ★★★★★
()

Можно ли в Mac Os X построить написание программ так, чтобы этот привет из 70-х (Objective-C) использовать только для Cocoa интерфейса, а все внутренности писать на Qt?

пиши всё на Qt, не сношай мозгА

по теме

shty ★★★★★
()

man Objective-C++. Можно.

Deleted
()

>этот привет из 70-х (Objective-C)

Ты что-то перепутал

yoghurt ★★★★★
()
Ответ на: комментарий от baverman

Сначала покажи как на сервер водрузить кутевую негуевую поделку без иксов

В чем проблемма? Без иксов qt вполне может жить, толькл нужен ли он в таком виде?

Deleted
()
Ответ на: комментарий от nu11

у меня на дебиановом сервере такая работает.

Может ты приведешь список пакетов, которые это обеспечивают?

baverman ★★★
()
Ответ на: комментарий от baverman

А нет рецепта. Если кутёвая поделка действительно негуёвая, т.е. не слинкована с qtgui и юзоет QCoreApplication, проблем с запуском на безиксовом сервере возникнуть не должно.

yoghurt ★★★★★
()
Ответ на: комментарий от baverman

Зато пакетные мейнтейнеры вполне могут, если о зависимостях в документации от девелопера не написано.

Deleted
()
Ответ на: комментарий от baverman

aptitude install libqtcore4

(аналогичным способом ставим все, что нужно, кроме гуевых частей, для консольной программы они все равно не нужны).

Зависимости libqtcore4: libc6, libgcc1, libglib2.0-0, libstdc++6, zlibg1

Как видим, ничего иксового.

Deleted
()
Ответ на: комментарий от baverman

Это проблемы тузем^Wдругих серверных дистрибутивов

yoghurt ★★★★★
()
Ответ на: комментарий от baverman

Вообще рпм как раз смотрит зависимости библиотек таким образом.

Yareg ★★★
()
Ответ на: комментарий от baverman

> В CentOS с этим всё грустно.

У тебя какой-то неправильный CentOS. В Fedora qt в базовой поставке от Иксов не зависит.

reader
()
Ответ на: комментарий от baverman

Ок, с дебианом разобрались, и соответственно с убунтой.

Но как быть с другими серверными дистрибутивами?

слушай, ну нельзя же так - снимись с ручника

как мне поставить, всё от гуёв зависит... ты вендопользователь со стажем щитоле?

взял да ручками собрал и .so'шники рядом с программой положил (LGPL-care вариант), не устраивает - статически вкомпилировал

какие проблемы?

shty ★★★★★
()

Чисто из интереса: что планируется юзать из Qt?

Pavval ★★★★★
()
Ответ на: комментарий от baverman
#openSUSE:

zypper install libqt4 # C++ Program Library, Core Components.
#This package contains base tools, like string, xml, and network handling.

#Gentoo:[br]
emerge -pv x11-tools/qt-core

Если в каком-то дистрибутиве оно и в куче, то можно собрать и вручную :-)

blinkenlichten
()
Ответ на: комментарий от baverman

В CentOS с этим всё грустно.

Не знаю за ваш центос, а в федоре всё как надо:

[zenom@vesta ~]$ yum deplist qt | grep -i x11
[zenom@vesta ~]$ 
Zenom ★★★
()

Запросто, только зачем?

Gorthauer ★★★★★
()
Ответ на: комментарий от baverman

>Сначала покажи как на сервер водрузить кутевую негуевую поделку без иксов
Ну ведь нельзя же быть _настолько_ толстым.

trex6 ★★★★★
()
Ответ на: комментарий от baverman

>К сожалению, пакетные менеджеры не используют ldd при расчете зависимостей.

емнип в слаке один из её недопакетников так делал. и мне это нравилось.

dib2 ★★★★★
()

Можно-то можно, но зачем тебе этот лютый звиздец? В C и так есть встроенный макропроцессор, в C++ появился ещё один (шаблоны), зачем тебе ещё и третий (moc)?

Miguel ★★★★★
()
Ответ на: комментарий от baverman

у нас на встраиваемых решениях шуршит и не жалуется. и иксов там нет даже когда гуй отобразить нужно. зашоренный ты какой-то

VladimirMalyk ★★★★★
()

> все внутренности писать на Qt?

Тяжелый случай. Школольники скоро будут считать Qt языком программирования.

tailgunner ★★★★★
()
Ответ на: комментарий от baverman

>Сначала покажи как на сервер водрузить кутевую негуевую поделку без иксов

легко, man gentoo/slackware/any other source-based distrib

Pinkbyte ★★★★★
()
Ответ на: комментарий от baverman

конкретно в генте - собираем qt-core и остальное по вкусу(qt-gui ясен пень не собираем) и ставим в make.conf USE="-X". Делал подобную сборку для своего диплома - эдакий гентушный stage4 с qt-core и серверной частью моей программы(требует QtCore, QtNetwork). Клиентская часть уже с гуём...

Pinkbyte ★★★★★
()
Ответ на: комментарий от shty

какие проблемы?

Да никаких. Слава яйцам, эти поделки не вылазят с уютненьких корпоративных серверов. Конпеляйте там у себя что угодно, ради бога.

baverman ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.