2016-06-27 4 views
0

내 파일 C++ 프로젝트에서 특정 조건이 충족되는 경우에만 파일을 포함하고 싶습니다.조건이 만족되면 cpp 파일 포함

, 목적 코드는 정말이 문제를 해결하는 방법을 모르는

#if condition1 
    #include file1.cpp 
#endif 
#if condition2 
    #include file2.cpp 
#endif 

같은 것입니다. #include는 전 처리기 문이고 if 조건은 프로그램 내에서 계산되어야합니다. 위 코드에서 어느 조건도 충족되지 않았으므로 파일이로드되지 않습니다.

if condition1{ 
    #include file1.cpp 
... 

전 처리기가 if 문과 관계없이 #include 문을 찾은 이후 모든 파일이 포함됩니다.

지금까지 세 번째 가능성을 발견하지 못했습니다.

+2

어떤 종류의 테스트를 원하십니까? 첫 번째 코드는 컴파일 타임에 조건을 설정할 수있는 한 유효합니다. 런타임 조건을 테스트하려면 전처리기로 수행 할 수 없으므로 코드를 다른 방식으로 설계해야합니다. – Krapow

+0

#ifdef myFlag #include #else #include #endif 트릭을 수행해야합니다. 왜 .cpp 파일을 포함시키고 싶습니까? – paweldac

+0

전처리기로는 할 수 없다는 느낌이 들었습니다. .cpp는 데이터 파일입니다. 코드의 일부 결과에 따라 올바른 것을로드해야합니다. 형식은 코드에 매우 쉽게 포함될 수 있도록 설계되었습니다 ... – Glostas

답변

0

일반적인 대답은 원하는 방식대로 수행 할 수 없다는 것입니다. 그러나 목표에 따라 목표를 달성 할 수있는 방법이있을 수 있습니다. (당신은 또한 어떤 개발 환경을 사용하는지 언급하지 않았다.)

1) 다른 cpp 파일을 포함하는 다른 버전에 대해 서로 다른 타겟을 만들 수있다. 대부분의 C++ 환경에는 #define 값을 명령 줄에 전달할 수있는 옵션이 있으므로 대상 이름을 이러한 방식으로 전달할 수 있습니다. 그런 다음 컴파일 할 때 #if 지시문을 사용하여 빌드중인 대상을 테스트 할 수 있습니다.

2) 별도의 바이너리로 다양한 cpp 파일을 컴파일하고 링크하여 런타임에 프로그램에 동적으로로드 할 수 있습니다. C#에서는 .NET과 같은 환경에서 사용하기가 매우 쉽지만 C++ 프로젝트에서는 환경이 무엇인지, 무엇을하려고하는지에 따라 작업이 더 쉬울 것이라고 생각합니다.