[완료]윈도우와 리눅스를 하나의 소스로...
글쓴이: liush79 / 작성시간: 수, 2007/08/01 - 5:52오후
윈도우와 리눅스를 하나의 소스로 처리 하고 싶습니다.
#define LINUX .... ..... FILE *fp = NULL; #ifdef LINUX fp = fopen("/home/test/test.txt", "rt"); #else fp = fopen("c:\\test\\test.txt", "rt" ); #endif fread( buffer, size, 1, fp ); fclose(fp); ..... ....
위와 같은 소스가 있다고 하면
맨위의 #define 만 지우면 윈도우에서 컴파일되고
안지우면 리눅스 에서 컴파일 됩니다.
저렇게 하면 #define 을 계속 지웠다가 추가했다가... 해야하는데..
현재 컴파일러가 리눅스다, 윈도우다 를 쉽게 파악 할 수 있는 방법이 있을까요..
생각..
makefile 에서도 define 같은게 되지 않나요...
거기서 define 한 것이 컴파일러에서도 define 된걸로 인식 할 수 있을것도 같은데..
Forums:
gcc 명령행 옵션중에
gcc 명령행 옵션중에 매크로상수를 정의할 수 있는 명령어가 있었던걸루 알고 있습니다.
gcc로 되니까 make로도 되죠.
컴파일러와
컴파일러와 컴파일러가 작동되는 환경마다 자동으로 정의되는 매크로들이 있습니다.
예를 들어 유닉스 환경은 __unix 또는 __unix__ 가 정의됩니다.
이 매크로가 정의돼 있더라도, DJGPP 나 __CYGWIN__ 이 정의돼 있으면 유닉스가 아닙니다.
리눅스는 특별히 linux 라는 매크로가 정의됩니다.
_Windows, _WIN32, WIN32, __CYGWIN__ 중 하나가 정의되면 윈도우즈라고 보면 됩니다.
Orion Project : http://orionids.org
gcc option
소스에서 제일 위의 #defile LINUX 는 지우시고
컴파일 할 때 리눅스에서는
gcc -DLINUX
옵션을 주어서 컴파일 하면 됩니다.
http://sebul.sarang.net/
세벌 https://sebuls.blogspot.kr/
댓글 달기