Portál AbcLinuxu, 19. dubna 2024 18:48


Dotaz: Vzhľad 32bit aplikácií pod 64bit OS

24.7.2006 14:29 Peter
Vzhľad 32bit aplikácií pod 64bit OS
Přečteno: 536×
Odpovědět | Admin
Dobrý deň prajem.

Predčasom som sa pýtal, že ako si na 64bit gentoo skompilujem 32bitovo style knižnicu pre kde (qt). Vzhľadom, že mi nikdo neodpovedal, tak som si nahodil vmware, v ňom som nainštaloval 32bitové kubuntu a skompiloval štýl linspireclear a potom som knižnicu linspireclear.so len surovo nakopčil na mojom gente do adresára /emul/linux/x86/usr/qt/3/plugins/styles32 v kcontrol som zapol tento štýl a všetky 32bitové aplikácie (opera, skype, ...) hneď získali pekný štýl tejto témy.

Ako druhý štýl som skompiloval lipstik s patchom Lipstik-Vistesque (táto kompilácia samozrejme pod tým virtuálnym kubuntu pracovala úplne v pohode) skopíroval lipstik.so na mojom gente do /emul/linux/x86/usr/qt/3/plugins/styles32 zapol ho v kcontrol a nič. 32bitové aplikácie dostali ten hnusný defaultný vzhľad qt. To isté mi robí aj pri štýle baghira.

Skúsil som ldd lipstik.so ktorý mi vyhodil, že mi chýba 32bitové libaudio.so.2 ktorý som z toho virtuálneho kubuntu nakopčil do /emul/linux/x86/usr/lib32 zadal ldconfig a potom ho už pri ldd našlo - ale čo sa týka vzhľadu, stále nič.

Mohol by ma tu niekto prosím vás nakopnúť správnym smerom, že kde hľadať riešenie?

Vopred veľmi pekne ďakujem za odpovede.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

24.7.2006 15:58 Peter
Rozbalit Rozbalit vše Re: Vzhľad 32bit aplikácií pod 64bit OS
Odpovědět | | Sbalit | Link | Blokovat | Admin
No - už som prišiel na to, že prečo mi to nejde:

1.) Na kubuntu mám verziu qt 3.3.6 a na gente 3.4.4
2.) linspireclear mi fungoval preto, lebo som si ten súbor pomýlil s iným ktorý som stiahol už skompilovaný z net-u a ten mnou skompilovaný fakt nefunguje
3.) preto vás poprosím - možete mi niekto prosím vás skompilovať http://student.ics.upjs.sk/~supervisor/application/lipstik-vista-2.2.tar.bz2 a poslať lipstik.so alebo nasmerovať na nejaký návod ako by som si to sám skompiloval 32 bitovo na 64 bitovom OS?

Ešte raz - vrelá vďaka
24.7.2006 16:21 petr_p
Rozbalit Rozbalit vše Re: Vzhľad 32bit aplikácií pod 64bit OS
Volba -mcpu u gcc.
24.7.2006 16:36 Peter
Rozbalit Rozbalit vše Re: Vzhľad 32bit aplikácií pod 64bit OS
OK - ale ako? Normálne sa to kompiluje svätou trojicou ./configure make make install. Takže kde mám zadať ten -mcpu?
24.7.2006 16:51 petr_p
Rozbalit Rozbalit vše Re: Vzhľad 32bit aplikácií pod 64bit OS
Nastav si to do promennych CFLAGS a CXXFLAGS. Nebo pouzij prepinac --host u configure. Ale dej si pozor, tam se to zadava v takove "divne" syntaxi (neco jako architektura-platforma-jadro-os), navic ta architektura nejvyssi pro x86 je i686. Ale do CFLAGS is muzes hodit treba pentium4.
24.7.2006 18:42 Peter
Rozbalit Rozbalit vše Re: Vzhľad 32bit aplikácií pod 64bit OS
Super - --host funguje perfektne, len ešte ako ho presvedčiť aby knižnice pomocou ktorých to chce kompilovať ťahal z nejakého mnou vopred určeného adresára. Napríklad kompilácia padá na tom, že sa mu nepáči súbor /usr/kde/3.5/lib64/libkdeui.so čo je samozrejme 64bit knižnica. Ja síce mám aj jej 32 bitovú verziu v adresári /home/peter/compile, ktorý som pridal pomocou prepínača --with-extra-libs ale aj tak to tvrdošijne chce tú 64bitovú. Keď som tú 64bitovú pokusne prepísal 32bitovou tak to už samozrejme zožralo, ale spadlo to zasa na inej. A prepisovať "polovicu" knižníc v systéme sa mi nechce. Takže ako na to?

Ešte raz - vrelá vďaka. Už som na pol ceste :-)
24.7.2006 18:59 petr_p
Rozbalit Rozbalit vše Re: Vzhľad 32bit aplikácií pod 64bit OS
Budto configure poskytuje --with-neco prepinac, kterym se rekne, kde to neco je, pripadne nastavte LDFLAGS=-L/adresar/kd/jsou/knihovny (predpokladam, ze to popadalo na linkovani).

Mimohodem, zkuste ./configure --help, jestli nevypise neco chytreho.
24.7.2006 20:15 Peter
Rozbalit Rozbalit vše Re: Vzhľad 32bit aplikácií pod 64bit OS
No - pri kompilácii mi vypísalo toto (./configure --host=i686-pc-linux-gnu --with-qt-libraries=/emul/linux/x86/usr/qt/3/lib/):
make  all-recursive
make[1]: Entering directory `/home/neoptolemos/tmp/install/lipstik-vista-2.2'
Making all in style
make[2]: Entering directory `/home/neoptolemos/tmp/install/lipstik-vista-2.2/style'
Making all in config
make[3]: Entering directory `/home/neoptolemos/tmp/install/lipstik-vista-2.2/style/config'
/bin/sh ../../libtool --silent --tag=CXX --mode=link i686-pc-linux-gnu-g++  -Wnon-virtual-dtor -Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -O2 -Wformat-security -Wmissing-format-attribute -fno-exceptions -fno-check-new -fno-common   -L/home/neoptolemos/tmp/install/compile/ -o kstyle_lipstik_config.la -rpath /usr/kde/3.5/lib/kde3 -L/usr/lib64 -L/emul/linux/x86/usr/qt/3/lib/ -L/usr/kde/3.5/lib  -avoid-version -module -no-undefined -Wl,--no-undefined -Wl,--allow-shlib-undefined -R /usr/kde/3.5/lib -R /emul/linux/x86/usr/qt/3/lib/ -R /usr/lib64  -module lipstikconf.lo -lkdeui
/usr/kde/3.5/lib64/libkdeui.so: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
make[3]: *** [kstyle_lipstik_config.la] Error 1
make[3]: Leaving directory `/home/neoptolemos/tmp/install/lipstik-vista-2.2/style/config'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/neoptolemos/tmp/install/lipstik-vista-2.2/style'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/neoptolemos/tmp/install/lipstik-vista-2.2'
make: *** [all] Error 2
Keď som v adresári /usr/kde/3.5/lib64/ vymenil 64bitovú verziu libkdeui za 32bitovu, tak kompilácia pokračovala a spadla zasa na libDCOP.so. Ten som zasa vymenil ...

Keď som ale konfiguroval pomocou ./configure --host=i686-pc-linux-gnu --with-qt-libraries=/emul/linux/x86/usr/qt/3/lib/ LDFLAGS=-L/home/peter/tmp/install/compile/ a v /home/peter/tmp/install/compile som už napíklad mal tú 32bitovú verziu libkdeui.so tak mi to vypísalo takú šialenú chybovú hlášku, že som ani nemohol vyrolovať v konsole na jej začiatok.

Ináč - v ./configure --help podľa mňa nie je nič zaujímavé čo by sa dalo použiť:
For better control, use the options below.

Fine tuning of the installation directories:
  --bindir=DIR           user executables [EPREFIX/bin]
  --sbindir=DIR          system admin executables [EPREFIX/sbin]
  --libexecdir=DIR       program executables [EPREFIX/libexec]
  --datadir=DIR          read-only architecture-independent data [PREFIX/share]
  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
  --libdir=DIR           object code libraries [EPREFIX/lib]
  --includedir=DIR       C header files [PREFIX/include]
  --oldincludedir=DIR    C header files for non-gcc [/usr/include]
  --infodir=DIR          info documentation [PREFIX/info]
  --mandir=DIR           man documentation [PREFIX/man]

Program names:
  --program-prefix=PREFIX            prepend PREFIX to installed program names
  --program-suffix=SUFFIX            append SUFFIX to installed program names
  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names

System types:
  --build=BUILD     configure for building on BUILD [guessed]
  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
  --target=TARGET   configure for building compilers for TARGET [HOST]

Optional Features:
  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
  --disable-fast-perl     disable fast Makefile generation (needs perl)
  --enable-debug=ARG      enables debug symbols (yes|no|full) default=no
  --disable-debug         disables debug output and debug symbols default=no
  --enable-strict         compiles with strict compiler options (may not
                          work!)
  --disable-warnings      disables compilation with -Wall and similiar
  --enable-profile        creates profiling infos default=no
  --disable-dependency-tracking  speeds up one-time build
  --enable-dependency-tracking   do not reject slow dependency extractors
  --enable-pch            enables precompiled header support (currently only
                          KCC) default=no
  --enable-final          build size optimized apps (experimental - needs lots
                          of memory)
  --enable-closure        delay template instantiation
  --enable-nmcheck        enable automatic namespace cleanness check
  --enable-shared[=PKGS]
                          build shared libraries [default=yes]
  --enable-static[=PKGS]
                          build static libraries [default=no]
  --enable-libsuffix      /lib directory suffix (64,32,none=default)
  --enable-fast-install[=PKGS]
                          optimize for fast installation [default=yes]
  --disable-libtool-lock  avoid locking (might break parallel builds)
  --enable-embedded       link to Qt-embedded, don't use X
  --enable-qtopia         link to Qt-embedded, link to the Qtopia Environment
  --enable-mac            link to Qt/Mac (don't use X)
  --disable-mt            link to non-threaded Qt (deprecated)
  --disable-threading     disables threading even if libpthread found
  --disable-rpath         do not use the rpath feature of ld
  --disable-path-check    don't try to find out, where to install

Optional Packages:
  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
  --with-pic              try to use only PIC/non-PIC objects [default=use
                          both]
  --with-tags[=TAGS]
                          include additional configurations [automatic]
  --with-extra-includes=DIR
                          adds non standard include paths
  --with-extra-libs=DIR   adds non standard library paths
  --with-qt-dir=DIR       where the root of Qt is installed
  --with-qt-includes=DIR  where the Qt includes are.
  --with-qt-libraries=DIR where the Qt library is installed.
  --without-arts          build without aRts default=no
Síce už som videl rôzne configure kde sa dalo nastavit aj cesty k KDE knižniciam, ... ale tu to jednoducho nie je :-(

Ale aj tak som Vám vďačný za ochotu - dúfam, že to dokopeme do zdarného konca.
25.7.2006 09:25 petr_p
Rozbalit Rozbalit vše Re: Vzhľad 32bit aplikácií pod 64bit OS
Vyzkousej parametr --with-extra-libs a modli se, aby byl uveden pred ostatnimi cestami.

Doporucil bych se zeptat vyvojaru te tvoji knihovny nebo KDE, jak to zaridit (mozna pridat cestu pro pkg-tool?).

Jinak, pokud mas kratkou historii v terminalu, zkus zmenit nastaveni terminalu, nebo pouzij program screen a do ~/.screenrc nastav delku bufferu napr. na 1000 radku (defscrollback 1000).
25.7.2006 10:56 Peter
Rozbalit Rozbalit vše Re: Vzhľad 32bit aplikácií pod 64bit OS
S tou históriu vrelá vďaka.

A s tým parametrom --with-extra-libs som už písal, že som ho použil ale bohužiaľ dáva ho až na posledné miesto, takže pred tým než sa pozrie do adresára definovaným týmto prepínačom sa pozrie do adresára /usr/kde/3.5/lib64 kde samozrejme tú knižnicu nájde ale v "zlej verzii" a tým to hasne. Takže mne práve ide o to, že ako ho presvedčiť (make) aby sa najprv pozeral do adresára definovanom extra-libs a až keď to tam nenájde nech to hľadá inde.

P.S.: moja angličtina je asi ako maďarova slovenčina :-). Síce nemám absolútne žiaden problém preštudovať hocijaký anglický manuál alebo technickú knižku ale niečo vypotiť - to nie - tak preto otravujem vás.

Dikes.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.