PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Entwicklungsumgebung einrichten



HelaWann
11-05-2005, 13:01
Hallo Forum.

Ich möchte ein Programm in C schreiben, das auch direkt auf einen Mysql-Server zugreifen kann. Soweit ist das nicht so das Problem, allerdings muss ich auf einem Rechner das Programm schreiben und kompilieren und das Binary dann auf einer anderen Maschine ausführen.

Der Hintergrund dafür ist, dass auf dem Rechner, auf dem das Programm nachher laufen soll, kein Kompiler und so weiter drauf installiert ist und auch nicht installiert werden soll.
Zum Schreiben und kompilieren habe ich mir ein Fedora3 aufgesetzt. Jetzt haben die beiden Rechner allerdings komplett unterschiedliche Library-Stände. Wie kann ich es nun erreichen, dass ich auf dem Fedora das Programm kompilieren kann, so dass es nachher auf dem anderen Rechner läuft? Wo muss ich welche libraries hinkopieren und wie den Kompiler und Linker konfigurieren.

Vielen dank schon jetzt für die Hilfe,

Hela

klewan
11-05-2005, 13:03
hmmm ich weiss nicht in wie weit du GNU automake dinger verwendest
dort genügt ein export CC="gcc -static"; && make clean all
aber ansich sollte ein
* gcc -static
alle libaries direkt in das binary rein linken



am schönsten sieht mans mit "ldd" wenn da steht is not a dynamicly linked executable dann sollte dein program von keiner libary mehr abhängig sein


lg
heli

HelaWann
11-05-2005, 13:11
aber ansich sollte ein
* gcc -static
alle libaries direkt in das binary rein linken



Das ist richtig und habe ich auch versucht, allerdings bekomme ich die Meldung (ist schon einige Tage her, deswegen frei interpretiert), dass die mysqlclient Geschichten nicht statisch gelinkt werden können.

Hat mich auch gewundert, scheint aber so zu sein. Im übrigen benutze ich he sehr alte MySQL-Version, eine 4.?.

Grüße, Hela

klewan
11-05-2005, 13:21
sehr alt? ich verwend noch 3.23 :-)


hmmmm naja dann kannst du nur schaun das du erfhärst welche version der mysql client libary auf der production maschine vorhanden sind

und diese installierst du dir dann am development system und baust deine software von dort aus


hmmm mit LD_LIBARY_PATH kann man übrigens den laufzeit suchpfad für libraries umbiegen damit sollte es auch gehen


oder du lässt deine software in nem chroot laufen wo alle libaries (libc,mysql, nss) von dir sind


lg

HelaWann
11-05-2005, 13:25
Welche Verzeichnisse würde ich in der chroot-Umgebung brauchen, reichen da /usr/include und /usr/lib? Ich kann schlecht den gesamten Server auf die Entwicklungs-Maschine bringen.

Danke für die Hilfe, Hela

klewan
11-05-2005, 13:32
ein /bin -> deine binarys
ein /lib -> alle libaries die du im chroot benötigst


am besten eifnach mal dein binary irgend wo ablegen und

ein chroot chr/ "/bin/binary"

machen und danach kucken welche libaries er verlangt oder obs eh schon funktioniert



eine weiter alternative wäre User-Mode-Linux :-) http://www.user-mode-linux.org das verwend ich im moment für entwicklungs szenarien :-)


lg

HelaWann
11-05-2005, 14:10
Vielen Dank, die Seite ist zur Zeit ganz große Klasse ;)

Naja, werde da dann mal vorbei schauen, wenn die wieder läuft.

Hela

klewan
11-05-2005, 14:22
:eek: looooooool
hat wohl ma eben wer den apache genuked :-d


naja probiers mit chroot is eh schlauer für kleine sachen