반응형

오류	C2857	/Ycpch.h 명령줄 옵션과 함께 지정한 '#include' 문이 소스 파일에 없습니다.

 

오늘 프로그래밍 도중에 이런 오류가 떴다..

일단 나의 경우에는 파일 분할 때문에 정리할려고 include, source 폴더를 만들고 거기에 있는 것을 가져오는 방식으로 구현할려고 했다.

그런데 이런 문제가 발생해서 검색해보니.. 모든 사람들이 그냥 미리 컴파일 된 헤더를 비활성화 하라고 한다..

나는 미리 컴파일 된 헤더를 활성화 시킬려고 하는건데..

 

아무튼 원인은 잘 모르겠지만

#include "pch.h" <- *.h 파일
#include "../include/pch.h" <- *.cpp 파일

각 파일에는 위에 적힌 대로 있다. 

그런데 문제는

이 미리 컴파일 된 헤더 파일 이름이 pch.h로만 되어있는데 저게 그대로 include가 되어있는지를 감지하고 안되어있으면 저런 오류를 뱉어내는 것 같다.

그래서 미리 컴파일 된 헤더 파일 이름을 ../include/pch.h로 해봐도 .h 파일 쪽에 문제가 있을테니.. 할 수 있는 방법은 없었다.

 

그러다가 생각난게 다른 라이브러리를 연결할 때 C/C++일반에서 추가 포함 디렉터리를 사용해야한다는게 생각나서 include 폴더 경로를 C/C++일반추가 포함 디렉터리에 추가를 한 후에 이렇게 하면 어차피 ../include 같은건 자동으로 되니깐 .cpp 파일에서 모두 수정하고 실행하니 해결되었다!

$(ProjectDir)\include

위에 이건 프로젝트 경로 안의 include 폴더를 지정하도록 하는 그런거다.

 

그리고 이런 오류가 뜨는 경우도 있는데 그냥 이건 pch.cpp 파일이나 stdafx.cpp 파일의 속성에서 

"사용(/Yu)"로 되어있을 텐데 "만들기(/Yc)"로 안해서 이다. "만들기(/Yc)"로 변경해주면 끝

 

그리고 $(ProjectDir) 같은건 여기에 보면 잘 설명 되어있다.

https://learn.microsoft.com/en-us/cpp/build/reference/common-macros-for-build-commands-and-properties?view=msvc-170

 

Common macros for MSBuild commands and properties

Learn more about: Common macros for MSBuild commands and properties

learn.microsoft.com

 

반응형
반응형

Visual Studio에서 자동완성을 하면 항상 내가 쓰는 방법대로 자동완성이 되지 않는다..

예를 들면..

// 내가 원하는 스타일
void test() {
}

// 내가 원하지 않는 스타일
void test() 
{
}

 

그래서 계속 짜증났는데.. 다행히 방법이 있었다!

 

Visual Studio 한국어 기준

도구 > 옵션

옵션 창에서 텍스트 편집기 > 변경하고 싶은 스타일의 언어 (C/C++) > 코드 스타일 > 서식 > 줄 추가

이 곳으로 들어오면 여러가지 선택 창이 있는데..

여기에서 각 버튼을 눌러보면 아래에 예시가 뜬다!

이걸 보고 선택하면 된다.

 

case: public: private: 같은 들여쓰기가 자동으로 안되는 것도.. 여기에서 줄 추가 말고 들여쓰기 탭에 가면 있다..

 

설정하면 원하는 대로 잘 된다!

반응형

'설치 > C++' 카테고리의 다른 글

VCPKG 버전 업데이트  (0) 2024.01.08
DLIB & OPENCV 진짜 쉽게 깔아보기 C++  (0) 2022.11.06
윈도우에서 VCPKG 설치하기  (0) 2022.11.06

+ Recent posts