2017-12-29 27 views
0

나는 CMake 프로젝트를 가지고있다. 어떤 이유로 (여기서는 말하지 않지만 요청시 제공 할 수 있음), 다른 라이브러리보다 먼저 컴파일 할 동일한 라이브러리의 일부인 일부 오브젝트 파일이 필요합니다. 특히 :오브젝트 파일 의존성 추가하기

  • FILES 소스 파일
  • file_a.c의 목록 FILES
  • file_d.c의 일원
을 컴파일 file_d.c 전에 디스크에 있어야합니다 FILES
  • file_a.o의 회원입니다입니다

    이것은 내가 지금 가지고있는 것입니다 :

    set_source_files_properties(
        file_a.c 
        PROPERTIES 
        OBJECT_OUTPUTS file_a.o 
        ) 
    
    set_source_files_properties(
        file_d.c 
        PROPERTIES 
        OBJECT_DEPENDS file_a.o 
        ) 
    

    이것은 메이크 파일에는 잘 작동하지만 닌자와 잘 어울리지는 않습니다. 순환 종속성 오류가 발생하고 여러 규칙에 대해 불만이 제기됩니다.

  • 답변

    1

    개체 파일 간의 종속성을 선언하지 마십시오. 종속성이있는 파일이있는 경우 add_library으로 분리 한 다음 add_dependenciestarget_link_libraries으로 종속성을 선언하십시오. 이것을하기위한 추가 비용은 없습니다.

    특히, Object Libraries을 살펴보십시오.