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

kiba

Alter Hase

  • »kiba« ist der Autor dieses Themas

Beiträge: 327

Wohnort: NRW

Beruf: Azubi: Fach-Info. Anw.

  • Private Nachricht senden

1

07.07.2011, 15:57

cmake

Hi leute.
Ich beschäftige mich zur Zeit mit Makefile.
Hab auch eine Makefile geschreiben die mir unter Linux und Windows eine Debug und Release version von meiner DynLibrary macht.
Nur will ich das ganze jetzt noch Plattformunabhäniger machen.
Und hab angefangen mit autotools rum zu experementieren, das ganze hat sich aber als etwas schwierig erwiesen (z.b. das einbinden von libtool), da ich beim autoconf-Script nicht weiss welche Befehle für was sind und ich find einfach nicht das was ich haben will.
Hab ich von cmake gehört.
Jetzt weis ich aber auch nicht wie ich meine Ideen umsätzen kann.

1. Es soll eine Dynamische Library erstellt werden.
2. Folgende Librarys sollen mit gelinkt werden (die sollten natürlich vorher überprüft werden ob es die gibt und eine Fehlermeldung ausgeben)
Bei Linux:
GL
GLU
ASound

Bei Windows:
opengl32
glu32
dsound

Bei MacOS:
OpenGL
framework

3. Bei Windows sollte die importlib mit erstellt werden, wie es z.b. bei mingw getan ist: --out-implib,$(LIBOUTDIR)lib$(LIBNAME).a
4. Bei Windows sollte noch die DirectX SDK (include und lib order) mit eingefügt werden
5. Dann solle man noch bei der ./configure angeben ob man im Debug oder Release Mode die Library erstellen will
Wenn man nix angibt wird die Library im Release Mode erstellt.
6. Die Library sollte man auch installieren können, beim Debug Mode sollte der src-Code mit in das System kopiert werden.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

07.07.2011, 17:05

Das lässt sich mit CMake alles machen, falls das deine Frage war. Auch wenn ich persönlich kein besonders großer Freund von CMake bin, für XPlattformgeschichten isses wohl mitunter eine der besten Optionen die man so hat...

FalkT

Treue Seele

Beiträge: 125

Wohnort: AC

  • Private Nachricht senden

3

07.07.2011, 17:33

Für sowas ist cmake die beste Wahl.
Gehen wir mal der Reihenfolge durch

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# Für die standard-sachen gibts schon suchfunktionen
FIND_PACKAGE(OpenGL REQUIRED)
# setzt die standard variablen
IF(NOT OpenGL_FOUND)
 FATAL(blub)
ENDIF(NOT OpenGL_FOUND)

#Für platform-spezifische dinge
IF(UNIX)

ENDIF(UNIX)
# entsprechend anpassen
file(GLOB library_hdr *.h)
file(GLOB library_src *.cpp)

# definiert das target
ADD_LIBRARY( YourName DYNAMIC ${library_src} )

# hier alles linken was du willst
TARGET_LINK_LIBRARIES(YourName ${OpenGL_LIBRARIES})

# die Install-routinen sind immer sehr spezifisch
INSTALL(TARGETS Yourname
        ARCHIVE DESTINATION ${yourtargetdir}
        COMPONENT runtime)
        
INSTALL(FILES ${library_hdr}
        DESTINATION ${your_INCLUDE_DIR}
        COMPONENT devel)


Den Rest wollte ich jetzt nicht vorkauen, aber bei spezifischen Fragen helfe ich gerne weiter.

Werbeanzeige