윈도우에서 리눅스로 포팅 참고사항

1 컴파일러 설정 #

가장 중요한 사항이라고 할수 있는데 옮길려고 하는 Window 의 소스를 VC++로 컴파일 할때 워닝레벨을 4로 올리고 컴파일 한다.
워닝 레벨 4를 사용할때의 이점

2 전처리코드 #


2.1 컴파일러 구분 #












컴파일러 구분 매크로
Microsoft Vusial C++ _MSC_VER
GNU gcc __GNUG__

두가지 매크로 다 해당 컴파일러로 컴파일 할때 정의되어 있으며 컴파일러의 버젼값을 나타내고 있다.
#ifdef _MSC_VER
#include “../ECMMat10/NEWMAT.h”
#include “../ECMMat10/NEWMATAP.h”
#endif
#ifdef __GNUG__
#include “../newmatlib/newmat.h”
#include “../newmatlib/newmatap.h”
#endif


2.2 pragma once #

pragma once 코드는 vc++ 에만 존재
#if (_MSC_VER > 1200) 
#pragma once
#endif

이런석으로 처리해 주거나


#ifndef XXXX
#define XXXX

[…] // A

#endif


로 수정해 준다.


3 데이타 타입 #


3.1 64비트 정수형 #















컴파일러 데이타선언 출력포멧
VC __int64, unsigned __int64 %lld(signed) %llu(unsigned) %llx(hex)
gcc long long, unsigned long long %I64d(signed) %I64u(unsigned) %I64x(hex)

// DiffResKey 데이타타입(64q비트) 설정 
#ifdef _MSC_VER
typedef unsigned __int64 DiffResKey;
#endif
#ifdef __GNUG__
typedef unsigned long long DiffResKey;
#endif

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다