Ismerkedni kezdtem a Qt és C++ -al ez az irodalom alapján:
http://www.qtrac.eu/C++-GUI-Programming-with-Qt-4-1st-ed.zip
Az első alkalmazás Hello Qt lefordítása után felmerült bennem a kérdés, hogyan tudok Linux alól win-en is futtatható exe-t fordítani?
Kevés angol tudásommal én azt következtettem ki a könyvből, hogy olyan programot fordit amilyen környezetben használjuk a fordítót.
Elég hitetlenek találom ezért rákérdezek, hogy tudok Linux alól win-en is futtatható exe-t fordítani?
forrás[hello.cp]:
#include
#include
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QPushButton hello("Hello world!");
hello.resize(100, 30);
hello.show();
return app.exec();
}
parancsok:
qmake -project
Létrejön egy qt.pro fájl a könyvben hello.pro (ezt nem tudom miért nem egyezik, de nem érdekes)
qmake qt.pro
Létrejön egy Makefile fájl
make
Létrejön egy qt nevű futtatható fájl.
Azt szeretném ha létrejönne qt.exe is és azt kipróbálhatnám wine-vel.
Szerkesztve:
Ubuntu 8.10 -et használok
- 2773 megtekintés
Hozzászólások
A MinGW nevű cross compiler-t kell használnod g++ helyett.
Nem tudom milyen disztribúciót használsz, nekem ubuntu 9.04 van, és benne van a repóban mingw32 néven.
Szerk.: így néz ki egy egyszerű c++ programo fordítása mingw-vel:
i586-mingw32msvc-g++ -Wall hello.cpp -o hello
- A hozzászóláshoz be kell jelentkezni
zolti@zolti:~/documents/qt$ i586-mingw32msvc-g++ hello.cpp
hello.cpp:1:28: error: QApplication: Nincs ilyen fájl vagy könyvtár
hello.cpp:2:27: error: QPushButton: Nincs ilyen fájl vagy könyvtár
hello.cpp:13:6: warning: no newline at end of file
hello.cpp: In function ‘int main(int, char**)’:
hello.cpp:6: error: ‘QApplication’ was not declared in this scope
hello.cpp:6: error: expected `;' before ‘app’
hello.cpp:8: error: ‘QPushButton’ was not declared in this scope
hello.cpp:8: error: expected `;' before ‘hello’
hello.cpp:9: error: ‘hello’ was not declared in this scope
hello.cpp:12: error: ‘app’ was not declared in this scope
- A hozzászóláshoz be kell jelentkezni
természetesen linkelni kell a megfelelő qt könyvtárat(úgyanúgy mint g++ -nál). De szerintem egyszerűbb ha a Makefileban a
...
CXX = g++
...
sort átírod így:
CXX = i586-mingw32msvc-g++
(Nem próbáltam még, de gondolom működik)
- A hozzászóláshoz be kell jelentkezni
make: Nothing to be done for `first'.
azt olvastam:
http://lists.trolltech.com/qt-interest/2006-03/thread00351-0.html
át kell irni a qmake.conf-ot.
Nem foglalkozom tovább vele, tanulni jó lesz így is.
Később ha valamit akarok vele kezdeni majd megint előveszem a témát.
- A hozzászóláshoz be kell jelentkezni
esetleg egy make clean-t ha lefuttatsz előtte?
Amúgy ez csak egy tipp. Ami azt illeti qt projektet nem fordítottam mingw-vel linuxon, csak egyszerűbb progikat, azok simán lefordultak.
Valószínűnek tartom, hogy előbb be kell majd másolni a Qt-s header fájlokat a mingw include könyvtárába (nálam /usr/lib/gcc/i586-mingw32msvc -n belül van), de ezügyben google meg a mingw weboldala szerintem okosabb mint én :P Nézz utána ;)
Szerk.:
Nem foglalkozom tovább vele, tanulni jó lesz így is
Én is mostanság kezdtem Qt-t tanulni és én is kb ugyanitt untam meg a dolgot(gondoltam majd ha winre is le akarok fordítani valamit, majd jobban belemerülök a témába) :DD
- A hozzászóláshoz be kell jelentkezni
A QMAKESPEC-et kell atirni mingw-sre, vagy a qmake-nak -spec parameterrel megadni a mingw-t kezelo specet.
--
()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
"Létrejön egy qt.pro fájl a könyvben hello.pro (ezt nem tudom miért nem egyezik, de nem érdekes)"
A projektfájl neve a könyvtár nevével egyezik meg, melyben a forrás van.
- A hozzászóláshoz be kell jelentkezni
Ok köszi. Így már ezt a részét értem.
- A hozzászóláshoz be kell jelentkezni
eleg sok howto-t talalni a neten qt crosscompile-lal kapcsolatban
en a (nekem) legegyszerubb megoldast valasztottam: a virtualis xp-re felraktam a qt-t, es a virtualbox shared directory-knak koszonhetoen a projectem windowsra forditasa annyi, hogy a virtualis gepet felebresztem alvasbol, nyomok neki egy qmake/make kombot, es kesz az exe, virt.gep elaltat es ennyi
az egesz a forditason kivul kb. 10 mp
- A hozzászóláshoz be kell jelentkezni
Kétségkívül ez a legegyszerűbb módja, én is így használom.
Linux alól így lehet fordítani.
- A hozzászóláshoz be kell jelentkezni
Köszönöm mindenkinek a választ.
- A hozzászóláshoz be kell jelentkezni