Toon posts:

[Linux C] readline blijft unresolved

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een programma wat readline nodig heeft, maar hij zegt dat hij hem niet kan vinden. :?

code:
1
2
3
4
$ ld -l readline -L /opt/gnu/readline-2.2.1/lib conftest.o
ld: fatal: library -lreadline: not found
ld: fatal: File processing errors. No output written to a.out
$


Maar hij staat daar toch echt!!!

code:
1
2
$ ls -l /opt/gnu/readline-2.2.1/lib/
-rw-r--r--   1 gert     staff     930444 Aug  4  1998 libreadline.a


Wat doe ik fout? Waarom kan hij hem niet vinden?

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Een shared object is niet hetzelfde als een statische library (te herkennen aan de extensie .a). Je hebt dus een libreadline.so nodig.

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


Verwijderd

Topicstarter
Kan ik dan helemaal niets met readline.a?

  • XTerm
  • Registratie: Juli 2001
  • Laatst online: 10-06-2025
Nee, maar kijk eens in /lib ? Daar staat libreadline.so normaal gezien ;)

Verwijderd

Topicstarter
Ja, normaal wel, maar niet op het systeem waar ik op zit. Ik ben er ook geen admin van, dus ik heb noodzakelijkerwijs libreadline in mijn home dir gezet. :)

  • igmar
  • Registratie: April 2000
  • Laatst online: 16:57

igmar

ISO20022

Verwijderd schreef op 10 april 2003 @ 17:46:
Ik heb een programma wat readline nodig heeft, maar hij zegt dat hij hem niet kan vinden. :?

code:
1
2
3
4
$ ld -l readline -L /opt/gnu/readline-2.2.1/lib conftest.o
ld: fatal: library -lreadline: not found
ld: fatal: File processing errors. No output written to a.out
$
werk gcc -o conftest conftest -lreadline -L /opt/gnu/readline-2.2.1/lib wel ??

  • WildernessChild
  • Registratie: Februari 2002
  • Niet online

WildernessChild

Voor al uw hersenspinsels

Verwijderd schreef op 10 April 2003 @ 17:46:
$ ld -l readline -L /opt/gnu/readline-2.2.1/lib conftest.o
ld: fatal: library -lreadline: not found
ld: fatal: File processing errors. No output written to a.out

$ ls -l /opt/gnu/readline-2.2.1/lib/
-rw-r--r-- 1 gert staff 930444 Aug 4 1998 libreadline.a
Afgezien van het shared/static verschil denk ik dat je op de command line libreadline moet opgeven i.p.v. readline. Of denk ik nu verkeerd?

Maker van Taekwindow; verplaats en resize je vensters met de Alt-toets!


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 22-08 01:56
WildernessChild schreef op 10 April 2003 @ 20:20:
Afgezien van het shared/static verschil denk ik dat je op de command line libreadline moet opgeven i.p.v. readline. Of denk ik nu verkeerd?
Je denkt verkeerd; dat doet de -l impliciet al.

Maar je kunt ook prima statisch tegen die archive file aanlinken hoor:
code:
1
ld /opt/gnu/readline-2.2.1/lib/readline.a conftest.o

Technisch gezien geen probleem (een .a archive is gewoon een zootje object files bij elkaar), maar niet zo praktisch als je veel applicaties hebt die dezelfde library gebruiken, de library niet zomaar mag distribueren, je je executable klein wilt houden, of de specifieke implementatie van de library platformafhankelijk is. Reden genoeg om even de dynamische library (.so) te installeren.
Pagina: 1