Podejrzewam, że podobnie jest z Qt, ja podam przykład prostej aplikacji z wxWidgets:
tworzę plik Makefile, który wygląda tak:
all: linux64 windows64 windows32
linux64:
@echo --------------------------------------------------------------
rm -f lin64/cvf
rm -f lin64/*.o
g++ -O3 -Wall -c main.cpp `/home/joszi/wx/lin64/bin/wx-config --cxxflags` -o lin64/main.o
g++ -O3 -Wall -c app.cpp `/home/joszi/wx/lin64/bin/wx-config --cxxflags` -o lin64/app.o
g++ -O3 -Wall -c panel_mag.cpp `/home/joszi/wx/lin64/bin/wx-config --cxxflags` -o lin64/panel_mag.o
g++ -O3 -Wall -c panel_kontrahenci.cpp `/home/joszi/wx/lin64/bin/wx-config --cxxflags` -o lin64/panel_kontrahenci.o
g++ -O3 -Wall \
lin64/app.o \
lin64/main.o \
lin64/panel_mag.o \
lin64/panel_kontrahenci.o \
`/home/joszi/wx/lin64/bin/wx-config --libs all` -o lin64/cvf
rm -f lin64/*.o
windows64:
@echo --------------------------------------------------------------
rm -f lin64/cvf.exe
rm -f msw64/*.o
x86_64-w64-mingw32-g++ -O1 -Wall -c base.cpp `/home/joszi/wx/msw64/bin/wx-config --cxxflags` -o msw64/base.o
x86_64-w64-mingw32-g++ -O1 -Wall msw64/base.o `/home/joszi/wx/msw64/bin/wx-config --libs all` -o msw64/cvf.exe
rm -f msw64/*.o
windows32:
@echo --------------------------------------------------------------
rm -f lin32/cvf.exe
rm -f msw32/*.o
i686-w64-mingw32-g++ -O1 -Wall -c base.cpp `/home/joszi/wx/msw32/bin/wx-config --cxxflags` -o msw32/base.o
i686-w64-mingw32-g++ -O1 -Wall msw32/base.o `/home/joszi/wx/msw32/bin/wx-config --libs all` -o msw32/cvf.exe
rm -f msw32/*.o
na dysku mam zainstalowanego linuxa 64 bitowego i 32 bitowego a w virtaulboxie windowsa 32 bitowego.
Folder z aplikacją jest współdzielony.
Można także korzystać z multilib + opcja -m32 -m64 dla g++
Jeśli masz zamiar kompilować pod windowsem to będzie ciężej (trzeba użyć mingw lub cygwin) pod windowsem nie kroskompilowałem więc ciężko mi coś powiedzieć...