Avatar billede noerbo Nybegynder
27. juni 2009 - 13:32 Der er 4 kommentarer og
1 løsning

Include mellem ifdef og endif

Hej

  Jeg sidder og forsøger på at lave noget kode, der både kan compiles under linux samt windows.

Mit problem er i denne kode:

#ifdef WIN32
#include "stdafx.h"
#pragma comment(lib, "SDL.lib")
#pragma comment(lib, "SDLmain.lib")
#endif

Visual C++ siger: fatal error C1020: unexpected #endif

Hvis jeg gør sådanher:

#include "stdafx.h"

#ifdef WIN32
#pragma comment(lib, "SDL.lib")
#pragma comment(lib, "SDLmain.lib")
#endif

  kan det godt compile (under windows, har ikke lige testet linux, men fejler sikkert pgr. stdafx.h).
  Betyder det at jeg ikke kan bruge ifdef/endif til at "gemme" includes væk?
Avatar billede bertelbrander Praktikant
27. juni 2009 - 13:40 #1
Der burde ikke være noget problem med at bruge #ifdef til at vælge hvilke filer du inkluderer, så jeg tror fejlen er et andet sted, f.eks. en fejl i stdafx.h.

Prøv at gøre det med en anden header fil.
Du kan også oprette en stdafx.h til Linux, på den har du også ofte brug for en systemspecifik header.
Avatar billede noerbo Nybegynder
27. juni 2009 - 13:58 #2
Du har ret i at det virker med en anden header.

stdfax ser sådanher ud:

// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//

#pragma once

#include "targetver.h"

#include <stdio.h>
#include <tchar.h>



// TODO: reference additional headers your program requires here
Avatar billede noerbo Nybegynder
27. juni 2009 - 14:10 #3
Løste det ved at flytte det hele ind i stdafx.h


#ifdef WIN32

#pragma once
#pragma comment(lib, "SDL.lib")
#pragma comment(lib, "SDLmain.lib")

#include "targetver.h"
#include <tchar.h>
#endif


#include <iostream>
#include <SDL.h>


Er ved i og for sig også lidt pænere når det kommer til stykket.

Mange tak for hjælpen bertelbrander. Du samler vel stadig ikke på point vel?
Avatar billede arne_v Ekspert
27. juni 2009 - 16:18 #4
stdafx.h er en Microsoftisme og jeg ville ikke bruge den på andre platforme.
Avatar billede bertelbrander Praktikant
27. juni 2009 - 23:23 #5
Nej, jeg samler stadig ikke på point.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester