fatal error: 'include/****.h' file not found

2019. 7. 22. 10:12C++

전과 마찬가지로,

CEF를 빌드하는 과정중에 문제가 생겼다.

CEF는 헤더파일들이 include 폴더에 다같이 모여있는데,

헤더파일들이 서로를 인클루드하려고 할 때,

#include ""****.h"가 아닌,

#include "include/****.h"와 같이 인클루드하게 돼있다.

#include "include/cef_base.h"
#include "include/cef_browser_process_handler.h"
#include "include/cef_command_line.h"
#include "include/cef_render_process_handler.h"
#include "include/cef_resource_bundle_handler.h"
#include "include/cef_scheme.h"

윈도 환경에서는 사람들이 문제 없이 빌드한 것으로 보인다.

 

하지만 내 경우, cmake가 include/include/****.h와 같은 경로로 헤더파일을 찾으려다 계속 실패하는 것이다.

(윈도 환경에서는 왜 잘되는지 이유는 모르겠으나)

 

해결방법은 간단했다.

헤더파일 탐색(?) 경로에 include 윗폴더를 지정해주는 것이다.

cef
 |
 + - include
 	|
        + - - ****.h

위와 같은 경우,

cef를 헤더파일 탐색 경로로 정하면,

빌드 과정에서, 컴파일러는 "include/****.h"를 찾다가 실패하는 대로

다른 헤더파일 탐색 경로에서 탐색을 시도할 것이다.(탐색 경로는 여러군데 설정 가능)

그러다가, cef를 기준으로 찾게될 경우, include/****.h를 마침내 찾을 수 있을 것이다.

 

include_directories("${CMAKE_CURRENT_SOURCE_DIR}")

cmake에 이 한 문장만 추가해주면 된다.

include_directories(): 헤더파일 탐색 경로를 추가/지정하는 함수이다.

${CMAKE_CURRENT_SOURCE_DIR}: 프로젝트 경로이다("cef")

'C++' 카테고리의 다른 글

C++ 메모리의 모든 것  (0) 2020.03.01
CEF(Chromium Embedded Framework)  (0) 2019.07.14
C++ 현재 시간 가져오기  (0) 2019.06.08
C/C++ 성능 최적화  (0) 2019.05.17
VSCode C++ Debugging Error  (0) 2019.04.27