c/c++ cross compiling

Fórumok

Olyan megoldást keresek (eddig kevés sikerrel), amivel windows alatt tudnék c/c++ kódot linuxra fordítani. Eddig két megoldást találtam, ami igazából egy. A cygwinhez töltöttem le egy kiegészítőt ami lefordítja a kódot, viszont linuxon nem fut, mert nem egyeznek meg a library verziók. Sajnos nincs lehetőség a linux gépen arra, hogy telepítsem (ez esetben régebbi) librarykat. A másik lehetőség, hogy fordítok egy saját tollchain-t, de ez túl komplikált, és ha nem egyezik meg a linux célrendszer azzal amin fordítottam, akkor megint csak nem fog működni.

Esetlegesen valami ötlet, ami windows alatt tudna c/c++-t linuxra fordítani, és esetlegesen akár komplett csomagként mindenféle külön teleépítgetés nélkül futna linuxon?

Hozzászólások

Ha cross-compile-t akarsz, akkor úgy indul a játék, hogy a végleges futtatási helyről leszeded az összes library-t és include fájlt, és azt használod a fordításhoz. Mármint ha nem szeretnél szívni.

Ha az a baj, hogy a Windowson keresztfordított linux program más libekhez van kötve, mint amik a célgépen jelen vannak (akár más verziók, akár nincsenek is jelen), akkor azt kell csinálni, hogy:
-1) szükséges függőségek keresztfordítása, ami jelen van, azt nyilván nem kell. Libek felkutatására ajánlott hely a cygwin telepítés /lib, /usr/lib, /usr/local/lib;
-2) a program mellé a saját libeket is vinni (kellenek a symlinkek is!);
-3) programot egy saját könyvtárba kitenni: pl:
mkdir target
mkdir -p target/usr/bin
mkdir -p target/usr/lib
...
cp keresztforditott_binaris target/usr/bin
cp szukseges_libek target/usr/lib

Az egészet tar-ba, vagy akármibe, átvinni célgépre, kicsomagolás egy egyedi könyvtárba, pl: /home/test/prog;

-4) ügyes scripttel indítani, ami LD_LIBRARY_PATH-szal beállítja a saját lib-eket is. Pl:
export LD_LIBRARY_PATH=/home/test/prog/usr/lib
/home/test/prog/usr/lib

Én kb így csinálnám. Mindenre ez sem megoldás, de segíthet.

(de azért előszőr próbáld ki, hogy a hello world megy-e egyáltalán a célgépen :D)
--
http://www.open-st.eu

A probléma, hogy az ügyfél windows alatt hegesztget matlab simulink-kal. Ennek a modellnek kell linux alatt futnia, ami nem is lenne probléma. Csak lehetőleg minél kevesebb változást okozva az ő életében. Erre lenne egy megoldás a cross compiling. De szerintem ezt a problémát nem tudom virtuális géppel megoldani.

--
A lehetetlen csak a lusta ember kifogása!