Projekat

Općenito

Profil

Akcije

Podrška #24596

Zatvoren

qt plugin sistem

Dodano od Ernad Husremović prije više od 14 godina. Izmjenjeno prije oko 12 godina.

Status:
Zatvoreno
Prioritet:
Normalan
Odgovorna osoba:
Početak:
28.09.2011
Završetak:
% završeno:

90%

Procjena vremena:

Akcije #1

Izmjenjeno od Ernad Husremović prije više od 14 godina

build xtuple-a traje i traje ...

qt ima plugin system. on omogućava da se aplikacija dinamički dograđuje sistemom plugin-ova.

taj sistem se može iskoristiti za razbijanje xtuple monolitnog exe-a na komponente.

Akcije #8

Izmjenjeno od Ernad Husremović prije više od 14 godina

plugin_1 init commit

hernad@macan:~/github/qt_playground/plugin_hello$ make

/usr/local/Trolltech/Qt-4.7.4/bin/moc -DQT_NO_DEBUG -DQT_PLUGIN -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/Trolltech/Qt-4.7.4/mkspecs/macx-g++ -I. -I/usr/local/Trolltech/Qt-4.7.4/lib/QtCore.framework/Versions/4/Headers -I/usr/local/Trolltech/Qt-4.7.4/include/QtCore -I/usr/local/Trolltech/Qt-4.7.4/lib/QtGui.framework/Versions/4/Headers -I/usr/local/Trolltech/Qt-4.7.4/include/QtGui -I/usr/local/Trolltech/Qt-4.7.4/include -I. -F/usr/local/Trolltech/Qt-4.7.4/lib -D__APPLE__ -D__GNUC__ plugin_1.h -o moc_plugin_1.cpp
g++ -c -pipe -O2 -arch x86_64 -Xarch_x86_64 -mmacosx-version-min=10.5 -Wall -W -DQT_NO_DEBUG -DQT_PLUGIN -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/Trolltech/Qt-4.7.4/mkspecs/macx-g++ -I. -I/usr/local/Trolltech/Qt-4.7.4/lib/QtCore.framework/Versions/4/Headers -I/usr/local/Trolltech/Qt-4.7.4/include/QtCore -I/usr/local/Trolltech/Qt-4.7.4/lib/QtGui.framework/Versions/4/Headers -I/usr/local/Trolltech/Qt-4.7.4/include/QtGui -I/usr/local/Trolltech/Qt-4.7.4/include -I. -F/usr/local/Trolltech/Qt-4.7.4/lib -o moc_plugin_1.o moc_plugin_1.cpp
g++ -headerpad_max_install_names -arch x86_64 -Xarch_x86_64 -mmacosx-version-min=10.5 -o plugin_1.app/Contents/MacOS/plugin_1 plugin_1.o moc_plugin_1.o   -F/usr/local/Trolltech/Qt-4.7.4/lib -L/usr/local/Trolltech/Qt-4.7.4/lib -framework QtGui -L/usr/local/Trolltech/Qt-4.7.4/lib -F/usr/local/Trolltech/Qt-4.7.4/lib -framework QtCore 
Undefined symbols:
  "_main", referenced from:
      start in crt1.10.5.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make: *** [plugin_1.app/Contents/MacOS/plugin_1] Error 1

Akcije #11

Izmjenjeno od Ernad Husremović prije više od 14 godina

i nakon puno fula, bezveznih kako to meni priliči ... moj prvi plugin radi

plug_app - aplikacija koja poziva libplugin_1.dylib commit

hernad@macan:~/github/qt_playground/plugin_hello$ ls -l libplugin_1.dylib

-rwxr-xr-x  1 hernad  staff  35152 Sep 28 18:02 libplugin_1.dylib

hernad@macan:~/github/qt_playground/plugin_hello$ ./plug_app

"/Users/hernad/github/qt_playground/plugin_hello" 
Looking for plugins at path:  "/usr/local/Trolltech/Qt-4.7.4/plugins" 
Looking for plugins at path:  "/Users/hernad/github/qt_playground/plugin_hello" 
hello

Akcije #12

Izmjenjeno od Ernad Husremović prije više od 14 godina

rezime

interface.h

sadrži ono što plugin i plug_app dijele.

sve ostalo je potpuno autonomno.

interface.h može da sadrži više klasa koje main app i plugin dijele.

Naravno main app može podržati više plugin-ova.

plugin nije ništa drugo do shared library sa dodatnim stvarkama na qt način. isto kao što je QString qt dotjerani string objekat.

Akcije #13

Izmjenjeno od Ernad Husremović prije više od 14 godina

naravno ovo što sam ja napisao se ne piše - hardkodirao sam dynlib.

Treba sada ovaj kod dotjerati tako ga da se u plugin/ poddirektoriju učitavaju pluginovi.

Akcije #14

Izmjenjeno od Ernad Husremović prije više od 14 godina

  • % završeno promijenjeno iz 0 u 90
Akcije #15

Izmjenjeno od Ernad Husremović prije oko 12 godina

  • Status promijenjeno iz Dodijeljeno u Zatvoreno
Akcije

Također dostupno kao Atom PDF