binutils als library oder ähnliches inkludieren. Flex/Bison.

0664jester

Mitglied
Hi,

ich brauche bestimmte dateien aus binutils
https://github.com/technicalinformatics/binutils/tree/master/ld
Zum Beispiel die ld.h, ldlex.h, ldgram.h, weil ich mit Flex/Bison einen Parser baue.

Nun weiss ich aber nicht wie ich die einbinden kann. Ich würde eine main.cpp brauchen, wo ich auf Funktion in binutils/ld/ld.h zugreifen könnte. Hier ist noch eine Grafik, die die includes zeigt. https://fossies.org/dox/binutils-2.27/ld_8h.html

int i = yyparse();


Alle versuche sind bisher gescheitert. Hat jemand eine Idee wie ich das lösen könnte?
 

0664jester

Mitglied
ich konnte nun das problem einschänken:


Mit diesen Befehl in der CmdShell: > flex ldlex.l && gcc -g -c -o lex.o -I../include -I. -I../bfd lex.yy.c && bison -d ldgram.y , kann ich lex.o erzeugen. (ich befinde mich hier im binutils/ld/ ordner).

Nun versuche ich eine main dazu zubasteln, was mir nicht ganz gelingt. Ich muss Abhänghigkeiten von übergeordneten Ordner nehmen, wobei er jetzt die Systemlibraries nicht mehr nimmt.
> gcc -g -c -o bison.o -I../include -I. ldgram.tab.c gcc -g -I../include -I. -o LdLexer bison.o lex.o ../bfd/*.o ../libiberty/*.o ../zlib/*.o ldfile.o ldmisc.o ldexp.o ../gold/*.o -ldl


Hat jemand eine Idee wenn ich "-I" verwende, ob ich dennoch die systemlibraries wieder dazu linken kann?