2012-08-08 3 views
0

나는 각각 libX.cpplibX.h 개의 파일이 들어있는 많은 디렉토리로 구성된 라이브러리를 가지고 있는데, 여기서 X은 디렉토리 이름입니다. 하나의 libX은 다른 프로젝트에서 사용될 수 있습니다. 문제는 각 프로젝트를 컴파일하는 동안 에 stdafx.h이 포함되어 있는지 묻습니다. 나는 내가 현재 프로젝트를 위해 생성 된 파일 stdafx.h을 포함해야한다고 생각한다. 좋아, 난 #include "some_absolute_path1\stdafx.h" 예를 들어 libA.cpp 파일에 쓰고있어. 는하지만 다른 프로젝트에서 같은 libA.cpp을 사용하고 있는데 나는 프로젝트간에 전환하는 동안에 stdafx.h 경로를 변경하는 것은 매우 충분하지 않습니다 라인stdafx.h를 다룰 때 별도의 디렉토리 라이브러리가있을 때

#include "some_absolute_path1\stdafx.h" 

#include "some_absolute_path2\stdafx.h" 

을 변경해야합니다 .

그 상황을 처리하는 가장 좋은 방법은 무엇입니까?

답변

0

stdafx.h를 사용할 수 없습니다. 사전 컴파일 된 헤더에만 사용됩니다.

당신은 여전히 ​​미리 컴파일 된 헤더를 사용하려면 #include "some_absolute_path2\libX.h"

을 방금 #include "some_absolute_path2\libX.h" 라이브러리를 필요로하는 프로젝트의 stdafx.h에 인치 수

+0

'stdafx.h를 사용하면 안됩니다. 이것은 미리 컴파일 된 헤더에만 사용됩니다. '할 수 없습니다. 사용하지 않으면 Visual Studio에서 오류를보고합니다. '당신은 #include "some_absolute_path2 \ libX.h"를 쓸 수 있습니다. libX.h를 stdafx.h에 포함시킬 수 있다는 의미입니까? 나는 stdafx.h가 libX.h에 포함되어야한다고 생각했다. – vico

0

lib가 해당 파일에 정의 된 리소스 중 일부를 사용하려면 include가 필요합니다. stdafx.h를 포함시킬 필요가 있다면 강제적 인 종속성이 있기 때문입니다. http://en.wikipedia.org/wiki/Precompiled_header

것은 내가 다음 수에 stdafx.h를 이동하려고합니다 : 당신은 당신이이 글을 발견

(프로젝트의 특정되지 않음) 라이브러리에 포함 할 관련 파일이 프로젝트를 요구하는 원인이 무엇인지 검토해야 main.cpp에있는 첫 번째 include는 libx.h 파일을 포함합니다.

+0

간단한 libX.cpp 한 줄만 사용했습니다. 'int n (int f) {return 0;}'컴파일러에서 오류가 발생했습니다. '오류 오류 C1010 : 미리 컴파일 된 헤더를 찾는 중에 예기치 않은 파일 끝입니다. 원본에 '#include "StdAfx.h"'를 추가하는 것을 잊었습니까? \t c : \ A \ LibA.cpp'이 줄에서 프리 컴파일 된 헤더를 사용하게되는 것은 무엇입니까? – vico

+0

그러면 stdafx.h에 대한 포함 행을 추가해야하는 이유는 무엇입니까? 오류나 경고가 발생합니까? – Picarus

+0

예, 오류가 발생했습니다. 오류 오류 C1010 : 미리 컴파일 된 헤더를 찾는 동안 예기치 않은 파일 끝입니다. 원본에 '#include "StdAfx.h"'를 추가하는 것을 잊었습니까? \t c : \ A \ LibA.cpp – vico

관련 문제