2011-08-31 3 views
0

내가 다른 OS에서 해당 프로그램을 컴파일하고 싶거나 윈도우에서 어떻게 할 수 있는지 리눅스 컴퓨터에서 c 프로그램을 만들었는지 확인하십시오.Windows에서 Linux 용으로 작성된 C 코드를 컴파일 할 수 있습니까?

내가 프로그램에서 pthread.h와 같은 특정 사항을 사용한 경우 어떻게해야합니까?

그렇게 할 수있는 직접적인 방법이 있습니까?

+1

http://stackoverflow.com/questions/1769360/porting-code-from-linux-to-windows –

+1

OS 특정 전화를 사용한 경우 다른 시스템에서 적절한 대안을 찾아야합니다. 적절한 대답에서 고려해야 할 다른 측면이 있지만, 대부분 Windows 호환 IDE/컴파일러에서 소스 코드를 컴파일 할 수 있어야합니다. – ssell

답변

3

다른 OS에서 해당 프로그램을 컴파일하려면 Linux 컴퓨터에서 C 프로그램을 한 개 만들었는지 확인하거나 Windows에서 어떻게 할 수 있습니까?

그런 다음 Windows에서 사용할 수있는 API와 그렇지 않은 API를주의 깊게 살펴 보시기 바랍니다. 이것은 해결하기 쉬운 문제는 아닙니다.

pthreads을 사용 했으므로 Windows에는 API 호환 대체품이 없습니다. 기본 API는 CreateThread 및 그 하위 항목입니다. 소스 레벨 호환성을 유지해야하는 경우 자체 #ifdef 규칙, 래퍼를 만들거나 APR과 같은 타사 라이브러리를 사용하십시오.

0

Windows와 함께 제공되지 않거나 Windows에서 사용할 수없는 라이브러리는 사용할 수 없습니다. 그러나 Windows 용 pthread 구현이있는 것처럼 보입니다. 당신은 당신이 사용하는 라이브러리가 무엇인지 윈도우 상응하는 것이 무엇인지 확인해야합니다.

1

그래, 거기에 직접적인 방법이있다 : 뭔가를 실패하면, 컴파일러와 관련된 차이점이나 OS 관련 이유를 찾아보십시오. 컴파일러와 관련된 경우 새 컴파일러의 소스 코드를 수정하십시오 (VS 또는 아마도 mingw를 사용할 수 있습니다). OS와 관련이 있다면 포트 코드가 필요합니다. 즉, 새 OS에 맞게 수정하십시오.

pthread.h의 경우 Windows에 대한 pthreads의 Pthreads-w32 포트가 있습니다.이 포트를 살펴볼 수 있습니다.

0

프로그램이 유닉스 라이브러리에 의존하는 경우 가장 좋은 방법은 Cygwin을 사용하는 것입니다. Cygwin은 Windows의 유닉스 호환성 레이어이며 bash, gcc, make 및 Linux 상자에서 찾을 수있는 대부분의 다른 유틸리티를 포함하여 포팅 된 소프트웨어 모음과 함께 제공됩니다. pthreads의 포트도 사용할 수 있습니다.

관련 문제