Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

OS Linux

gcc vraag

None
5 antwoorden
  • Met gcc 3.3.4 wil ik lua compileren. (www.lua.org). Ik krijg een foutmelding, die er uiteindelijk op neerkomt dat er in file /usr/include/bit/errno.h een regel staat:
    [code:1:f2a1d3ab84]# include <linux/errno.h>[/code:1:f2a1d3ab84]
    en daar struikelt hij over.
    [code:1:f2a1d3ab84]$ locate linux\/errno.h[/code:1:f2a1d3ab84] geeft aan dat de file in de kernel-sources staat.
    Vervang bovenstaande regel door:[code:1:f2a1d3ab84]# include "/usr/src/linux/include/linux/errno.h"[/code:1:f2a1d3ab84]Opnieuw compileren blijkt de oplossing van deze fout en brengt de volgende fout tevoorschijn met andere .h files, die op hetzelfde neerkomt. Ook .h files in [code:1:f2a1d3ab84]/usr/src/linux/include/linux[/code:1:f2a1d3ab84] moeten zo aangepast worden om tenslotte lua gecompileerd te krijgen. Dit was de enige soort fout dus en lua werkt nu prima. Toch vind ik de door mij gevonden oplossing nogal een 'hack' en denk ik dat er ergens een instelling moet zijn, zodat de regel[code:1:f2a1d3ab84]# include <linux/errno.h>[/code:1:f2a1d3ab84] wel door gcc herkent wordt. Gaarne uw deskundige commentaar & oplossing.
    Slackware current op P4 2,4 MHz, 512 kb RAM
  • Je moet l/kernel-headers geinstalleerd hebben. En nooit de includes uit de kernel gebruiken, want glibc is gecompileerd met de headers uit de kernel-headers package.
  • Snelle reactie….. :D
    [quote:de8da7432b="danieldk"]Je moet l/kernel-headers geinstalleerd hebben..[/quote:de8da7432b]
    Sorry, dit begrijp ik niet. Wat moet ik nou doen? Kan je dit wat uitgebreider uitleggen svp.
    [quote:de8da7432b="danieldk"]En nooit de includes uit de kernel gebruiken, want glibc is gecompileerd met de headers uit de kernel-headers package.[/quote:de8da7432b]
    Dit begrijp ik ook niet. De door mij gemaakte veranderingen kan ik gemakkelijk ongedaan maken, zo heb ik ze wel aangebracht.
    FYI: lua heeft een eigen Makefile, dat niet met de GNU configure werkt. Er is wel een config file waarin je kunt sleutelen. E.e.a. is duidelijk uitgelegd in de lua-docs (en het config-file zelf).
    Douwe.
  • [quote:788a33bee6="Douwe"]Wat moet ik nou doen? Kan je dit wat uitgebreider uitleggen svp.[/quote:788a33bee6]

    Je zou kunnen kijken of deze package geinstalleerd is met:

    [code:1:788a33bee6]
    ls /var/log/packages/kernel-headers*
    [/code:1:788a33bee6]

    Als het niet geinstalleerd is kun je het vanaf je Slack CD-ROM installeren met "installpkg", het staat in de directory "slackware/d". Het gaat om dit bestand:

    ftp://ftp.nluug.nl/vol/4/linux-slackware/slackware-10.0/slackware/d/kernel-headers-2.4.26-i386-3.tgz

    (Voor Slack 10)

    [quote:788a33bee6]
    Dit begrijp ik ook niet.
    [/quote:788a33bee6]

    De C library, glibc, gebruikt een aantal header (.h) bestanden die specifiek zijn voor het besturingssysteem dat je gebruikt. Dit zijn de zogenaamde kernel headers. Glibc is echter met een specifieke versie van deze kernel headers gecompileerd, namelijk die uit de kernel-headers package uit de slackware/d/ directory. Als je dan de headers van je kernel gaat gebruiken, kunnen deze incompatibel zijn met de headers die gebruikt zijn om glibc te compileren.

    De includes in programma's die je compileert zijn vrijwel altijd goed. Het installeren van de bovengenoemde kernel-headers package zorgt ervoor dat de headers die corresponderen met de glibc die je gebruikt worden geinstalleerd in /usr/include(/linux).
  • installatie van
    kernel-headers-2.4.26-i386-3.tgz
    is de truc. Had hem ooit weggegooid toen ik naar 2.6 kernel overging. Ten onrechte dus, zoals je uitgelegd hebt. De 'hacks' uit de .h files zijn verwijderd en lua compileert nu veel sneller, hoewel de resulterende proggies wat groter zijn geworden.
    tnx danieldk.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.