<BøNilzen> Skrevet 19. desember 2004 Del Skrevet 19. desember 2004 Har nettopp lagt inn slackware 10.0 på en maskin her. Men jeg får ikke helt til g++. g++ main.cpp -o program sh program program: program: cannot execute binary file Hvorfor får den ikke til det? Det samme skjer hvis jeg kompilerer en fil i kdevelop. Den kompileres og kjøres i kdevelop, men prøver jeg å åpne filen etterpå i terminal sier den bare "program: program: cannot execute binary file" Er det noe jeg gjør feil eller? Lenke til kommentar
A_N_K Skrevet 19. desember 2004 Del Skrevet 19. desember 2004 Hvorfor prøver du å eksekvere en binær fil med shell (sh)? Shell tolker shell-script, prøv heller ./program. Lenke til kommentar
<BøNilzen> Skrevet 19. desember 2004 Forfatter Del Skrevet 19. desember 2004 Oi.. Trodde man skulle bruke sh for å åpne binærfiler jeg... (Nybegynner i linux hvis ikke du skjønte det ) Lenke til kommentar
A_N_K Skrevet 19. desember 2004 Del Skrevet 19. desember 2004 sh er en binærfil faktisk. Ofte ligger ikke current directory i PATH, derfor jeg prefikset med './' (. er current directory) bare så det er sagt. For å starte et program ditt_prorgram som ligger i /usr/bin f.eks kan du skrive /usr/bin/ditt_program, sh ligger som regel i /bin så du kan skrive /bin/sh. Lenke til kommentar
<BøNilzen> Skrevet 19. desember 2004 Forfatter Del Skrevet 19. desember 2004 Du, nå har jeg et nytt problem. Jeg får ikke til SDL.. Har lastet ned sourcen til versjon 1.0.8 og fulgt instruksjonene. Men den få masse feil når jeg prøver å kompilere eksemplene. Først så fikk jeg masse error's med "undeclared bla bla bla", men det var fordi den ikke fant SDL.h Så fiksa jeg det, men nå får jeg masse feil med "Undefined reference to 'SDL_XXXX' Jeg har prøvd både g++ testxxxx.c og gcc testxxxx.c Lenke til kommentar
Dead_Rabbit Skrevet 19. desember 2004 Del Skrevet 19. desember 2004 Har du husket å legge SDL.dll på rett sted? Har fått noe liknende før, da hadde jeg glemt å legge SDL.dll i C:\WINDOWS\system32, men det er vel noe annet i Linux. Og så må du huske å ha med argc og argv i main(er det ikke slik Myubi?). Lenke til kommentar
søppel Skrevet 19. desember 2004 Del Skrevet 19. desember 2004 Du må kompilere selve biblioteket før du kompilerer eksemplene (eller egen kode). Undefined reference er en linkerfeil og betyr at den ikke finner biblioteket. Det anbefales å bruke distribusjonens eget pakkesystem når du installerer programvare og biblioteker - da det er lettere å vedlikeholde. Lenke til kommentar
Dead_Rabbit Skrevet 19. desember 2004 Del Skrevet 19. desember 2004 Ja, det er også en måte å forklare det på. Lenke til kommentar
☀ ❄ Skrevet 19. desember 2004 Del Skrevet 19. desember 2004 <BøNilzen>: Fikk du til å kjøre filen? Hvis ikke kan du ta en titt på umasken din. Den bestemmer hvilke rettigheter som fjernes fra nye filer du oppretter. Men den kanskje vanligste umasken er 022, som ikke fjerner noen rettigheter fra filer du lager selv -- du kan altså kjøre filene uten noe mer fikkel. For å kompilere med SDL sørger du for at headere er på riktige steder (Legg dem i /usr/include, og lag en symlink: ln -s /usr/include /usr/include/SDL ), at bibliotek-filene er i linkerens PATH (Sørg for at /usr/local/lib er i /etc/ld.so.conf, og så må du kanskje kjøre ldconfig etter å ha installert SDL). Sist, men ikke minst -- du må kompilere slik: g++ -o minfil minfil.cpp `sdl-config --cflags --libs` Note: ` er det som på godt norsk kalles "backticks". Produseres på norske tastaturer ved å trykke shift+tasten til venstre for backspace, og så mellomrom. PS: til at du har lagt inn Linux Lenke til kommentar
A_N_K Skrevet 19. desember 2004 Del Skrevet 19. desember 2004 Du bør legge inn SDL først vha. sekvensen ./configure make make install Du er nødt til å være superbruker for å kunne utføre make install (bibliotek og headere legges inn i filsystemet). Lenke til kommentar
☀ ❄ Skrevet 19. desember 2004 Del Skrevet 19. desember 2004 (endret) Vil bare understreke at i distroer med gode pakkesystemer er det best å benytte seg av pakkesystemet. Slackware har dårlig med pakkesystem, så ./configure && make && make install er måten å gjøre det på. Edit: Post 404: Post not found. :] Endret 19. desember 2004 av Myubi Lenke til kommentar
<BøNilzen> Skrevet 20. desember 2004 Forfatter Del Skrevet 20. desember 2004 (endret) Du bør legge inn SDL først vha. sekvensen ./configure make make install Du er nødt til å være superbruker for å kunne utføre make install (bibliotek og headere legges inn i filsystemet). Joda, dette har jeg gjort selvfølgelig. Men jeg skal prøve å kompilere sånn som du sa myubi! PS: til at du har lagt inn Linux Det er lenge siden. Har hatt red-hat en stund men den var jeg lei av nå. Edit: Funka!! Takker så mye myubi Endret 20. desember 2004 av <BøNilzen> Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå