2017-03-16 7 views
0

visual studio 프로젝트에 dirent.h를 포함하고 싶습니다. 나는 유닉스와 윈도우 모두와의 호환성을 원한다. 그래서 https://github.com/tronkko/dirent을 사용하려고합니다. 이 프로젝트에서 문서를 말한다 :Windows에서는 .h 경로를 포함하지만 Visual Studio에서는 유닉스에서는 생략합니다.

당신이 당신의 자신의 소스 코드와 함께 dirent.h를 배포하고자하는 경우는, 다음 복사 추가 프로젝트 내에서 새 하위 디렉토리/dirent.h를 파일을 포함 이 디렉토리는 Windows에 경로를 포함 시키며, 은 Linux/UNIX에서 디렉토리를 생략합니다. 이렇게하면 프로젝트를 Linux/UNIX의 기본 dirent.h와 비교하여 컴파일 할 수 있으며 Microsoft Windows에서는 기능을 대신 사용할 수 있습니다.

Visual Studio에서이를 수행하는 단계는 무엇입니까? (나는 2017 버전을 사용하고 있지만 이전 버전과 비슷하다고 가정합니다.)

+0

당신은 비주얼 스튜디오가 아닌 다른 빌드 시스템을 사용하는 경우, 코드 :

#ifdef _MSC_VER #include "stuff specific to Microsoft Visual Studio" #else #include "stuff not specific for Microsoft Visual Studio" #endif 

를 귀하의 경우, 당신은 뭔가를 할 수 있습니다 UNIX에서는 자동으로 컴파일 될 수 없습니다. 괜찮은 추천은 CMake가 될 것이지만 물론 자신 만의 연구를하고 Stack Overflow에 대한 의견을 바탕으로 질문하지 마십시오. –

+0

프로젝트의 속성 시트를 사용하십시오. – stark

+0

@TatsuyukiIshi Visual Studio 2017은 이제 Linux 용 C++ 프로젝트 컴파일을 지원합니다. – roalz

답변

2

#includes를 구별하는 데 사용되는 고전적인 해결책은 #if 또는 #ifdef와 같은 전 처리기 지시문을 사용하는 것입니다.

예를 들어, 당신이 사용할 수 있습니다

#ifdef _MSC_VER 
#include "msvc/dirent.h" 
#else 
#include <dirent.h> 
#endif