[linux] Re: cgi-lib error na 'make install' -> nieuwere versie niet te vinden :(

Daniel C. von Asmuth asmuth op bakunin.xs4all.nl
Wo mei 25 10:19:35 CEST 2005


Aldus schreef Cor Lem op Tue, May 24, 2005 at 10:34:20PM +0100:
> Daniel C. von Asmuth wrote:
> 
> > Als je in je programma schrijft:
> > #include <string.h>
> > krijg je de string funkties van de GNU C library
> > 
> > Schrijf je echter in je code:
> > #include <linux/string.h>
> > Dan krijg je de file die je aangaf. Ik lees in /usr/src/linux/include/string.h:
> > 
> > /* We don't want strings.h stuff being user by user stuff by accident */
> >  
> > #ifdef __KERNEL__
> >  
> > .........     
> > 
> > Dit klinkt niet als het soort header file dat een gewone user wil gebruiken.

> Ook dit kan ik globaal volgen - Tav dat die lib niet door normale 
> gebruiker gebruikt zou worden zou kunnen kloppen, gezien rrdtool meer 
> iets voor een server is dan voor een ingelogde gebruiker ...

Het woord 'user' wordt hier gebruikt om alle programmeurs aan te duiden 
(hier inclusief de 'superuser' en 'end user') en bijna alle programma's 
die onder Linux draaien (deze worden gelinkt tegen de standaard C library) 
in tegenstelling tot de 'kernel' c.q. personen die delen van de kernel 
schrijven. De kernel kan geen gewone libraries gebruiken die dynamisch 
vanaf de harde schijf moeten worden geladen, maar heeft een kleine 
ingebouwde funktiebibliotheek aan boord, die u vindt in /usr/src/linux/lib. 

Deze kleine discussie was voor uw probleem nauwelijx relevant:-(
De 'management summary': zet een regel met
#include <string.h>
aan het begin van het programma. Als het dan nog niet compileert, vertelt
de compiler welke regel een probleem opleverde. Als u niet direkt ziet hoe
de fout dient te worden verholpen, kunt u kleine delen van het programma
op de lijst publiceren.

Tipje: als de output van 'make' klachten bevat dat de compiler de funktie
'fun()' niet kent, dan zal het commando 'man 3 fun' u vertellen welke
header file u moet 'includen' voor de definitie van die funktie, tenzij
de betreffende library op uw systeem nog niet aanwezig is (dan zou u 
Google kunnen raadplegen). De broncode zou daarna de compiler moeten pas-
seren, waarna de linker kan klagen dat 'fun()' nu nog onvindbaar is, zo-
dat u mag uitzoeken in welke library de eigenlijke code van fun() te 
vinden is en die dan meelinken. 

Have fun,



Daniel

-- 
	Hier had uw advertentie kunnen staan.



More information about the Linux mailing list