PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit parapin



phoku
02-09-2003, 18:39
Hallo,
ich hab folgenden Code setpin.c

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <parapin.h>

main(int argc, char *argv[]) {

int i = atoi(argv[1]);
int n = atoi(argv[2]);

if (pin_init_user(LPT1) < 0)
exit(0);

pin_output_mode(LP_DATA_PINS | LP_SWITCHABLE_PINS);

switch (n) {
case 1:
printf("\n ==> setting pin %d HI\n\n",i );
set_pin(LP_PIN[i]);
break;
case 0:
printf("\n ==> setting pin %d LOW\n\n",i );
clear_pin(LP_PIN[i]);
break;
}
}

beim compilieren mit gcc -o binary -lparapin setpin.c bekomme ich folgende Fehlermeldung:
/tmp/cckEJoqO.o: In function `main':
/tmp/cckEJoqO.o(.text+0x45): undefined reference to `pin_init_user'
/tmp/cckEJoqO.o(.text+0x63): undefined reference to `pin_output_mode'
/tmp/cckEJoqO.o(.text+0x9f): undefined reference to `set_pin'
/tmp/cckEJoqO.o(.text+0xc9): undefined reference to `clear_pin'
collect2: ld returned 1 exit status

die Dateien /usr/local/include/parapin.h und /usr/local/lib/libparapin.a liegen am richtigen Platz.

Weiß jemand, wo der Fehler ist?

anda_skoa
03-09-2003, 12:05
Nachdem die Lib nicht im Standardpfad ist (/usr/lib) musst du den Pfad beim Compileraufruf angeben

gcc -o binary -I/usr/local/include -L/usr/local/lib -lparapin setpin.c

Und setze Code bitte in Codetags.

Ciao,
_

Ticha
02-11-2006, 23:13
ich habe dasselbe problem. aber wenn ich es so mach wie du es mir gesagt hast, tritt dasselbe problem wieder auf :-I

anda_skoa
03-11-2006, 14:05
Vielleicht ist die Version der Lib falsch und enthält diese Funktionen nicht.

Aber um ganz sicher zu gehen: das -lparapin ist kein -Iparapin

Ciao,
_

Beatkiller
08-11-2006, 20:14
Hast du /usr/local/lib im LD_LIBRARY_PATH bzw in /etc/ldconfig eingetragen? Dann mach ein ldconfig und schau, ob irgendwelche Referenzen nicht aufzulösen sind.

Da keine Meldung kommt, das die Lib nicht gefunden wird, ist da schon mal nicht zu suchen. Ich vermute, das er die .so nicht finden kann. Versuchs doch ma statisch zu linken.