2013-03-02 2 views
0

나는 time.h라고도 불리는 헤더 파일을 가지고있는 boost (time.h를 사용)와 C 라이브러리 (libav)를 사용하고 있습니다. 그래서 boost가 time.h를 사용하려고 시도하면 libav에서 time.h를 ANSI C 표준 time.h로 apposed했을 때 호출합니다.CMake 충돌 헤더 파일

libav가 자체 time.h를 찾고 ANSI C 표준 time.h를 사용하도록 어떻게 강요합니까? 그리고이 코드가 모든 곳에서 구축되어야하므로 라이브러리를 전혀 수정하고 싶지 않습니다.

감사합니다.

#include "libavutil/time.h" 

은 적어도이 자식 저장소에서 libav의 최신 버전에서이 방법을 포함 :는/usr /가 포함에서이 libav 소스에 포함로 libav에서

+1

Google은 사용자가 해당 코드를 포함해야하는 코드를 확인해야합니다. 그렇지 않으면 우리는 단지 추측 할 수 있습니다. – antonijn

답변

3

time.h는 time.h와 충돌하지 않아야 . 당신이 이전 버전을 가지고 있다면 그렇게하지 않아도됩니다. 실수로 include 경로에 libavutil 디렉토리를 설정 한 경우, libavutil 디렉토리를 제거하거나 libavutil 디렉토리 자체를 포함하지 않는 경로로 변경해야합니다.

+0

"시스템 포함"에만 '<...>'이 사용되어야합니다. – vonbrand

+0

""이 포함 된 문은 내 제안이 아닌 libav 소스에서 제공됩니다. – Slava

+0

그들은 아마도 자신의 헤더를 참조하고 있습니다. 그 알고리즘은''...''는 시스템 인클루드 디렉토리를보기 전에 소스가있는 디렉토리와 동일한 디렉토리에서 파일을 찾기 시작하는 반면,'<...>'는 시스템 인클루드 디렉토리 만 보게됩니다. – vonbrand