Gå till innehåll
Just nu i M3-nätverket

C++ på Mac?


Macnatt

Rekommendera Poster

Jag ska börja en programmeringskurs på några veckor där vi bla kommer gå igenom C++.

Jag kan väldigt lite om programmering men har fått reda på att man behöver en kompilator.

Det vore bra om nån kunde komma med tips om vilka program jag behöver för att kunna

programmera C++ med mera och testa det man gör.

 

Det är lite dumt med det för skolan tillhandahåller program till Windows men plattformsdiskriminerar

mig. Dom säger att dom inte direkt har tagit sig tid att kolla upp vilka program som finns till Mac.

 

Vore toppen om nån kunde hjälpa mig!

Länk till kommentar
Dela på andra webbplatser

i OS X (10.3) så kan du installera sakerna på XCode skivan så har du allt du behöver.

i tidigare så finns allting på Developer tools skivorna.

 

i OS9 så finns väl Codewarrior (finns väl till OSX med iofs) men det kostar pengar.

Länk till kommentar
Dela på andra webbplatser

För OS X)

 

Som sagts i föregånde tillägg;

Xcode (använder gcc; gratis)

CodeWarrior (kommersiellt; från ca 3000 kr och uppåt; är inte värt kostnaden om man bara utvecklar på student/hobby basis

genererar klart bättre kod än gcc (gcc börjar komma ikapp; men codewarrior är fortfarande snäppte vassare; samt

betydligt snabbare att kompilera.)

eller IBMs xlc (om man vill ha optimerad G5 kod; förnärvarande gratis).

 

För OS 9)

 

MPW (Macintosh Programmers Workshop, har bästa kodgenereringen ihop med CodeWarrior; Gratis)

CodeWarrior (kommersiellt; svårt att få tag på nu då metrowerks slutade göra MacOS 9 versioner av CodeWarrior för ett par år sedan

Ny versioner kan bygga program för MacOS 7 och senare; men utveckling sker på MacOS X)

gcc (svårt att installera; samt har inga direkta fördelar över MPW)

 

 

Så länge du bara använder vanlig ANSI/ISO C(++) går vilken av kompilatorerna som helst bra

Börjar ni göra Windows specifika program; kolla in wxWindows (är inte Win32 kompatibelt; men betydligt lättare att porta ett Win32 program till wxWindows än till Carbon/Cocoa)

Länk till kommentar
Dela på andra webbplatser

Ok tack! Ska kika på det.

Men är det inte så att om vi får kodexempel och man ska kompilera koden,

blir inte den ett program då? Och det programmet som liksom blir av koden

när den kompileras är väl skriven för windows? Eller hur funkar det där

egentligen?

Länk till kommentar
Dela på andra webbplatser

Lite förenklat kan man säga att om man inte gör riktigt skumma systemanrop, samt INTE sysslar med grafiska program så ska det inte vara något problem.

 

Koden du skriver kan kompileras på vilken dator som helst som har en kompilator för standard C++.

 

Av dina frågor att dömma verkar detta vara en grundkurs i C++, så det ska nog gå hur bra som helst att jobba från macen.

 

Apples utvecklingsmiljö för OSX är riktigt trevlig måste jag säga.

 

Öh, fattar jag din fråga fel kanske? Samma kod går att kompilera på alla platformar, men programmen man får när man kompilerat går bara att köra på den platform de är kompilerade på. Men detta borde inte vara problem då inlämningsgrejer troligen är i form av kod, annars kan du säkert kompilera din kod på skolan.

Länk till kommentar
Dela på andra webbplatser

  • 2 weeks later...

Kan någon vara så hemskt vänlig att förklara lite lätt och pedagogiskt hur man gör?

Jag vill kompilera några enkla rader i Xcode. Såhär ser koden ut:

 

 

// 01First.cpp

// Utskrift av text p sk‰rmen

// Kommentar, cout med utmatningsoperatorn << och radbyte

 

#include <iostream>

using namespace std;

 

int main()

{

cout << '\n';

cout << "Detta ‰r mitt fˆrsta C++ program! \n"; // Dessa 4 rader kallas satser

cout << "Det skriver ut text p sk‰rmen.";

cout << '\n';

return 0;

}

 

 

För det första, när jag väljer projekt, vilken typ av projekt ska jag välja?

Enligt min lärobok (som tyvär bara tar upp Borland c++ till windows)

så ska det bara vara att "spara om textfilen 01myfirst med ändelsen cpp och köra".

 

Väldigt tacksam för svar

Länk till kommentar
Dela på andra webbplatser

För det första, när jag väljer projekt, vilken typ av projekt ska jag välja?

Under Tools - C++ Tool.

Klistra sedan in din kod i main.cpp

 

// Totte

Länk till kommentar
Dela på andra webbplatser

Ska testa! En annan sak bara innan, eh sökvägen, spelar den nån roll?

sökvägen till min projektmapp, får den innehålla mellanslag och sånt?

 

*Edit* Det verkade inte vara något problem

*Edit igen* När jag kör filen i terminalen så klagar den dock på att sökvägen inte finns.

 

Såhär blir resultatet när jag väljer -build and run- (Denna texten står inne i Xcodes "resultat" fönster)

_____________________________________________

Detta är mitt första C++ program!

Det skriver ut text på skärmen.

 

MittFörstaC++program has exited with status 0.

_____________________________________________

 

Vad betyder den sista raden?

 

Om du är duktig och har typ mycket tid över så snackar jag gärna med dig

på icq eller nått Totte?

Länk till kommentar
Dela på andra webbplatser

MittFörstaC++program has exited with status 0.

_____________________________________________

 

Vad betyder den sista raden?

Att du gjort return 0; på slutet. I toolsvälrden brukar man nreturnera != m0 vid fel, och 0mvid OK.

 

Om du är duktig och har typ mycket tid över så snackar jag gärna med dig

på icq eller nått Totte?

Duktig=Klarar mig i alla fall

Mycket tid över=Nej, inte så värst.

 

Nu tillbaka till trådoptimering....

 

 

// Totte

Länk till kommentar
Dela på andra webbplatser

rastapopoulos

Ursäkta, men skall inte "Hello World" alltid vara det första programmet man skriver enligt god programmeringstradition… ;)

Länk till kommentar
Dela på andra webbplatser

Nån som kan förklara detta med sökvägen? Se mitt inlägg längre upp..

 

Känns skönt att ha kommit igång i alla fall.

Länk till kommentar
Dela på andra webbplatser

Nån som kan förklara detta med sökvägen? Se mitt inlägg längre upp..

 

Känns skönt att ha kommit igång i alla fall.

Alla "nya" unixar har en säkerhetsspärr som gör att man måste verkligen tala om att man vill köra ett prog om det ligger i den lokala katalogen (jag förklarar straxt varför...)

 

skriv ./filnamn så körs ditt prog.

 

Detta är för att inte du som kulig hacker skall lägga filen ls i en gemensam filarea, och så kommer sysman in, skriver ls, och ditt skumma ls-hack körs då, och gör en massa hackiga saker, och sedan gör den ls åxå, så ingen märker nått.

hajjaru?

 

// Totte

Länk till kommentar
Dela på andra webbplatser

Jo men alltså som såhär...

 

När jag hade valt built and run från Xcode så fick jag en fil med en ikon som ser ut som terminalens typ.

Jag dubbeklickade på den, terminalen gick igång men klagade över att pathen inte existerade.

Därefter så testade jag att skapa min projektmapp på skrivbordet istället för djupt innne i HD'n.

Jag följde samma procedur som första gången, dubbelklickade på filen, konsolen skrev då ut texten.

Alltså får man väl inte ha mellanslag och skumma grejer?

 

Tycker jag är lite trist isånnafall. Jag kan ju inte lägga alla projekt på skrivbordet. Hur skulle det se ut?

Ordning och reda ska det vara! <_<

Länk till kommentar
Dela på andra webbplatser

Jo men alltså som såhär...

 

När jag hade valt built and run från Xcode så fick jag en fil med en ikon som ser ut som terminalens typ.

Jag dubbeklickade på den, terminalen gick igång men klagade över att pathen inte existerade.

Därefter så testade jag att skapa min projektmapp på skrivbordet istället för djupt innne i HD'n.

Jag följde samma procedur som första gången, dubbelklickade på filen, konsolen skrev då ut texten.

Alltså får man väl inte ha mellanslag och skumma grejer?

 

Tycker jag är lite trist isånnafall. Jag kan ju inte lägga alla projekt på skrivbordet. Hur skulle det se ut?

Ordning och reda ska det vara!  <_<

Dubbelklicka?+ huh??

 

man skriver cd 'sin långa path'

./filnamn

 

eller cd <och dragga hit mappen man vill till>

 

Dubbelkklick är för applikationer, INTE för tools!

 

// Totte

Länk till kommentar
Dela på andra webbplatser

Va? Du får gärna vara mer pedagogisk. Jag kan inget om detta. Började idag. Har aldrig vart i terminalen innan.

 

Xcode spottar ut en fil som heter MittFörstac++program, den har en ikon som ser ut som terminalen,

i visa info står det att det är en Unix-körbar fil.

 

Om min projektmapp ligger på skrivbordet och jag dubbelklickar på den så skriven terminalen ut texten.

Skapar jag en projektmapp långt inne i Hd'n så klagar terminalen när jag dubbelklickar på den.

 

 

*edit* Filen som den spottar ut heter 02FirstOne. Jag öppnar terminalen, skriver cd och släpper mappen som 02FirstOne ligger i

efter cd. Sedan skriver jag ./02FirstOne

 

Såhär:

 

cd/Users/Henrik/Jobb/Webb&Programmering/C programmering/ProgrammerinFörNybörjareBok/Kap2.4/02FirstOne/build./02FirstOne

 

Då svarar terminalen:

 

No such file or directory

Länk till kommentar
Dela på andra webbplatser

Va? Du får gärna vara mer pedagogisk. Jag kan inget om detta. Började idag. Har aldrig vart i terminalen innan.

<cut>

Såhär:

 

cd/Users/Henrik/Jobb/Webb&Programmering/C programmering/ProgrammerinFörNybörjareBok/Kap2.4/02FirstOne/build./02FirstOne

 

Då svarar terminalen:

 

No such file or directory

skriv:

cd '/Users/Henrik/Jobb/Webb&Programmering/C programmering/ProgrammerinFörNybörjareBok/Kap2.4/02FirstOne/build'

./02FirstOne

obs! mellanslag efter CD, och '-fnutta runt paths som innehåller mellanslag.

Länk till kommentar
Dela på andra webbplatser

Ok ok ok! en till fråga dock. =)

Hur får jag programmet att gå självt?

Jag får ju en fil, i info står det Unix-körbar fil.

När jag mailar den till en kompis och han kör den så funkar det inte.

Terminalen klagar på att den inte hittar en fil som heter något i stil med:

libstdc++_ZeroLink.dylib

 

Vad skall man göra? :blink:

Länk till kommentar
Dela på andra webbplatser

Ok ok ok! en till fråga dock. =)

Hur får jag programmet att gå självt?

Jag får ju en fil, i info står det Unix-körbar fil.

När jag mailar den till en kompis och han kör den så funkar det inte.

Terminalen klagar på att den inte hittar en fil som heter något i stil med:

libstdc++_ZeroLink.dylib

 

Vad skall man göra? :blink:

jag använder inte Xcode själv (jag använder CodeWarrior); men det låter som om du har skickat en debug version, prova bygg en "release/deployment" version.

Att helt självförsörjande program på macos x är möjligt (static linking) men ej rekommenderat; och ganska pilligt för en nybörjare.

Jag tror i detta fall bör det räcka med att ändra menyn från "Development" -> "Deployment" eller "Debug" -> "Release" kommer inte ihåg vad Xcode/Project Builder kallar det igen.

 

[ ZeroLink är en teknik som används av Xcode för att starta program innan linkning; isamband med "Fix & Continue" kan man där med prova programmen innan dom är "färdig byggda"; ändra i programmet medans det kör utan att behöva kompilera om allt.

mitt råd är att försöka undvika detta (såvida du inte programmerar cocoa); då jag hört ett flertal programmerare som fått mycket konstiga buggar/krasher när ZeroLink och Fix & Continue används.

vet du inte vad jag pratar om behöver du inte bry dig om det :) ]

 

En annan sak du bör tänka på; Om du utvecklar ditt C++ program på Panther (MacOS X 10.3) så är risken förhållandevis stor att det inte fungerar på Jaguar eller Puma(MacOS X 10.2/MacOS X 10.1) om förlitar dig på externa C++ klasser eller dyl.

Anledningen till detta är att C++ inte har någon definerad binär standard; alltså kan program kod generarad av kompilator X 1.0 eller kompilator Y vara helt inkompatibel med program kod genererad av kompilator X 1.1 eller kompilator Z.

 

Angånde tools (eller terminal kommandon.)

Döper du filen till <namn>.command så fungerar det utmärkt att dubbelklicka på i Finder (en Terminalen öppnas automatiskt.)

 

tex. om din fil heter "mitttestprogram" så döper du den bara till "mitttestprogram.command"

Länk till kommentar
Dela på andra webbplatser

Jag begriper ingenting. När jag väljer projekt så kan jag välja mellan flera alternativ.

Jag vill skriva i c++ så jag väljer c++ tools.

 

Jag hittar ingen meny inne i projektet där man kan ändra detta?

Jisses va krångligt detta skall vara då...

 

Ingen som använder Xcode??

Länk till kommentar
Dela på andra webbplatser

Ok ok ok! en till fråga dock. =)

Hur får jag programmet att gå självt?

Jag får ju en fil, i info står det Unix-körbar fil.

När jag mailar den till en kompis och han kör den så funkar det inte.

Terminalen klagar på att den inte hittar en fil som heter något i stil med:

libstdc++_ZeroLink.dylib

 

Vad skall man göra?  :blink:

Ställ XCode i Deployment build, ej debugbuild.

Zerolink är debuglib.

Länk till kommentar
Dela på andra webbplatser

Jag begriper ingenting. När jag väljer projekt så kan jag välja mellan flera alternativ.

Jag vill skriva i c++ så jag väljer c++ tools.

 

Jag hittar ingen meny inne i projektet där man kan ändra detta?

Jisses va krångligt detta skall vara då...

 

Ingen som använder Xcode??

Ändra vad??

Länk till kommentar
Dela på andra webbplatser

Jag begriper ingenting. När jag väljer projekt så kan jag välja mellan flera alternativ.

Jag vill skriva i c++ så jag väljer c++ tools.

 

Jag hittar ingen meny inne i projektet där man kan ändra detta?

Jisses va krångligt detta skall vara då...

 

Ingen som använder Xcode??

Prova detta; när du öppnat ditt projekt,

I listan som innehåller alla filer som projektet består av; högst upp finns det en Xcode ikon

följt av projektets namn, markera denna.

Sedan trycker du på Äpple knappen (Kommand) och I (som i Ingvar).

Du ska då få upp ett fönster som har titeln: Project <namnet på ditt projekt> Info.

 

I detta fönster klickar du på tabben "Styles",

Där finns en popup meny som förmodligen står på "Development"

Framför menyn står det "Active Build Style" , dra ner menyn och välj "Deployment".

 

Efter du gjort detta prova kompilera om ditt projekt.

 

(Anledningen till att ditt program inte fungerar på Jaguar (jag glömde säga detta i det meddelande jag skrev igår) är den att Fix & Continue / Zero Link inte varit standard på MacOS X innan Panther, det är därför biblioteket inte hittas. Det fanns/finns dock en Xcode version för Jaguar, hur vida den har Fix & Continue eller ZeroLink vet jag inte, och ärligt talat så bryr jag mig inte speciellt mycket heller; Xcode är gratis, men det håller inte heller den standard som kommersiella kompilatorer gör, vare sig när det gäller prestanda eller kodgenerering (kodgenereringen är dock GCC så man ska inte skylla på apple där...) =)

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.



×
×
  • Skapa nytt...