Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Databyte

Alter Hase

  • »Databyte« ist der Autor dieses Themas

Beiträge: 1 040

Wohnort: Na zu Hause

Beruf: Student (KIT)

  • Private Nachricht senden

1

05.05.2009, 17:24

Portierbarkeit des Codes

Hi

Ich habe c++ bis jetzt immer nur auf meinem kleinen Laptop mit Windows XP hier vor mir programmiert und das immer mit VC++ Express 2008 (früher war es 2005, aber da gabs ja an sich net viele Änderungen).
Jetzt wollte ich vtl ein kleines Projekt starten, das sich möglichst auf allen Plattformen und mit möglichst jedem C++-compiler(also die Gängigen... VC++, DevC++, CodeBlocks... ka was es da alles gibt) compilen lässt.

Welche Einschränkungen gibt es da und was muss ich beachten, damit es aich auch auf Linux und Macintosh compilieren lässt.
Ich meine mich zum Beispiel entsinnen zu können, dass "#pragma once" nur auf VC++ funktioniert...

2

05.05.2009, 17:32

wichtig wäre auch das du keine biblioteken, frameworks verwendest die win only sind z.b. die winapi, directx oder .net (ich weis das man entsprechende programme auch auf linux zum laufen bekommt). wichtig ist auch das du befehle die für einen compiler sind entsprechend anpasst für einen anderen.

n0_0ne

1x Contest-Sieger

  • Private Nachricht senden

3

05.05.2009, 17:44

Benutz einfach portierbare Bibliotheken, wie z.B. SDL, SFML oder boost etc. und verwende deren Funktionalität. Versuch auch solche compilerabhängigen Konstruke wie pragma usw. zu vermeiden. Dann solltest du eigentlich keine großen Probleme haben, die auch zu portieren...

Databyte

Alter Hase

  • »Databyte« ist der Autor dieses Themas

Beiträge: 1 040

Wohnort: Na zu Hause

Beruf: Student (KIT)

  • Private Nachricht senden

4

05.05.2009, 17:46

Auf welche genau muss man da achten ? Gibts da irgendwelche Tabellen, wo man das nachlesen kann ?

K-Bal

Alter Hase

Beiträge: 703

Wohnort: Aachen

Beruf: Student (Elektrotechnik, Technische Informatik)

  • Private Nachricht senden

5

05.05.2009, 17:58

Re: Portierbarkeit des Codes

Zitat von »"Databyte"«


Jetzt wollte ich vtl ein kleines Projekt starten, das sich möglichst auf allen Plattformen und mit möglichst jedem C++-compiler(also die Gängigen... VC++, DevC++, CodeBlocks... ka was es da alles gibt) compilen lässt.


DevC++ und C::B sind keine Compiler ;)

#pragma once ersetzt du durch:

Quellcode

1
2
3
4
5
6
#ifndef HEADERNAME_H_
#define HEADERNAME_H_

...

#endif

6

05.05.2009, 19:13

Das allerbeste ist immer noch, den Code ständig mit verschiedenen Compilern auf verschiedenen Plattformen zu testen.
Z.B. die Casesensitivheit von Linux bei Dateinamen, da achtet kein Compiler drauf. Sowas muss man einfach austesten (sprich wissen und richtig programmieren und dann nochmal testen, falls man mal was übersehen hat oder so).
Lieber dumm fragen, als dumm bleiben!

7

05.05.2009, 21:12

K-Bal ... warum?
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

8

05.05.2009, 21:25

Weil #pragma once Compilerspezifisch ist.
Und das andere ist dann einfach ein IncludeGuard, such danach und du wirst sicherlich massig finden.
Lieber dumm fragen, als dumm bleiben!

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

9

06.05.2009, 09:14

Zitat von »"Jonathan_Klein"«

Weil #pragma once Compilerspezifisch ist.
Und das andere ist dann einfach ein IncludeGuard, such danach und du wirst sicherlich massig finden.


Wieso nicht beides? :)

xardias

Community-Fossil

Beiträge: 2 731

Wohnort: Santa Clara, CA

Beruf: Software Engineer

  • Private Nachricht senden

10

06.05.2009, 09:39

Wäre das nicht doppelt gemoppelt? Oder hat pragma once Vorteile gegenüber Include Guards?

Wenn du wissen willst welche Bibliotheken du benutzen kannst und welche nicht kannst du am besten fragen. Hier im Forum kann man dir sicher eine Bibliothek empfehlen mit der du für dein Vorhaben arbeiten kannst.

Werbeanzeige