Pro-Linux.de

Pro-Linux

Pro-Linux Diskussions- und Hilfeforum
Aktuelle Zeit: 19. Dez 2018 15:41

Alle Zeiten sind UTC+01:00




Ein neues Thema erstellen  Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Cross-Compiler and Libraries
BeitragVerfasst: 20. Apr 2007 13:32 
Hallo alle,

ich habe mir eine Toolchain (hat sich unter /opt installiert) für einen PPC Prozessor auf meinem x86 System installiert. Um auf digitale I/Os zuzugreifen, existiert ein Kernel-Modul, welches auf der Zielplattform bereits geladen wird. Für den einfachen Zugriff existiert meine Library, welche mit dem Kernel-Modul kommuniziert (über /dev) und Funktionen wie Initialisierung usw übernehmen kann, respektive die Handhabung vereinfacht. Die Library konnte ich ohne Probleme mit dem Crosscompiler übersetzen und habe jetzt eine Datei libEasyIO.a.

Um mein Programm übersetzen zu können, muss ich GCC die Option -lEasyIO mitgeben damit der Linker weiss, gegen was er Linken soll.

Jetzt meine Frage: Es ist mir klar, dass ich libEasyIO.a irgendwie ins /lib Verzeichnis kopieren muss (Frage am Rande: braucht es da noch spezielle Kommandos?). Zuerst möchte ich aber meine Applikation gelinkt bekommen. Wohin muss ich auf dem x86-Entwicklungssystem meine libEasyIO.a kopieren? Wohl kaum ins /lib Verzeichnis, denn mein x86 kann doch nix mit der PPC-Library anfangen. Muss dass Ding im /opt Verzeichnis irgendwo in der PPC-Toolchain zu liegen kommen? Einfach dahin kopieren?

Danke Euch

shakke-freeez


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 20. Apr 2007 13:59 
Offline
Benutzeravatar

Registriert: 11. Feb 2006 19:10
Beiträge: 3569
.a-Dateien sind statische Libraries. Diese werden *nicht* mit -l... eingebunden und müssen *nicht* in ein /lib-Verzeichnis kopiert werden.

Stattdessen werden solche Libraries wie .o-Dateien bei Complilieren des Binaries gelinkt.

Janka

_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 20. Apr 2007 14:18 
Ohhh :-) Vielen Dank.

Wie mach ich denn dem Compiler klar, dass er die statische Library verwenden soll?

shakke-freeez


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 20. Apr 2007 14:54 
Offline
Benutzeravatar

Registriert: 11. Feb 2006 19:10
Beiträge: 3569
Die wird (wie ich oben schon geschrieben habe) einfach wie eine .o-Datei im Linker-Lauf für das Executeable eingebunden. Also im Makefile so wie unten:
Code:
myapp: main.o part1.o library.a part2.o
        ($CC) -o $@ $^
Janka

_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 20. Apr 2007 16:00 
Hatt geklappt, vielen Dank!

Falls es jetzt aber eine dynamische Library wäre - wie würde dann die Antwort auf meine Frage heissen?


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 20. Apr 2007 18:14 
Offline
Benutzeravatar

Registriert: 11. Feb 2006 19:10
Beiträge: 3569
Dafür baust du dir ein lib-Verzeichnis in deiner Cross-Umgebung, und gibst dies per -L beim Linken an. Der Linker nutzt die Informationen in der dort einfach hineinkopierten (oder gebauten) .so-Library, um über fehlende Symbole zu meckern, mehr nicht.

Der eigentliche Linkvorgang findet ja erst auf dem Zielsystem statt, und da muss man halt die Library nach /usr/lib o.ä. kopieren und danach einmal ldconfig ablaufen lassen.

Janka

_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 6 Beiträge ] 

Alle Zeiten sind UTC+01:00


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de