7

Visual Studio 2005를 사용하여 만든 C++ 프로젝트를 CMake로 변환하고 프로젝트에 포함 된 리소스 파일에 약간의 문제가 발생했습니다.CMake 및 Visual Studio 리소스 파일

프로젝트에는 .rc 파일, .ico 개의 파일 및 .rc2 파일이 포함됩니다.

일반 .rc 파일은 생성 된 프로젝트에서 올바르게 작동하며 리소스 컴파일러를 사용합니다. 그러나 .ico.rc2 파일은 생성 된 프로젝트에서 Visual Studio가 C/C++ 컴파일러를 사용하여 컴파일하려고하기 때문에 포함되는 즉시 문제가 발생합니다.

이 파일들은 .rc 파일에 포함되어 있다고 가정합니다. 따라서 CMakeLists.txt 파일에 파일을 포함시키지 않아도되지만 (프로젝트에 표시 될 수 있기 때문에) 원래 프로젝트) 생성 된 프로젝트의 사용자가이 파일을 사용하고 있음을 알 수 있도록 그렇게하고 싶습니다.

CMake에서 이러한 추가 VS 리소스 파일을 처리하는 올바른 방법은 무엇입니까?

+0

나는 CMake를 모르지만 리소스 파일이 어떻게 사용되는지에 관해서는 당신이 맞다. CMakeLists.txt 파일에 그것들을 넣고 싶다면, 빌드되지 않는 어떤 타겟에 넣어야하고, 문서에 있어야합니다. –

+0

@ JoachimPileborg : 정보 주셔서 감사합니다. 그래, 문제는 내가 CMake 중 하나도 몰라서 관련이있는 문서에서 아무 것도 발견하지 못했다는 것입니다. :) – villintehaspam

+0

MinGW에 대한 버그 보고서에서 발견되었지만 동작해야합니다. "IRC의 누군가가 암시 하듯이, resource.h/resource.rc 파일을 프로젝트 add_executable() 소스 목록에 추가했습니다." –

답변

2

시도해보십시오. set_source_files_properties(your.ico your.rc2 PROPERTIES LANGUAGE RC).

1

기본적으로 이러한 파일에는 아무 것도 수행하지 않아야합니다. 소스 파일 특성 LANGUAGE는 비어 있어야하므로 파일에 대한 조치가 파일 유형에 의해 점검되어야합니다. 그것이 컴파일되어야하는 것이 아니기 때문에 어떤 것이 어서는 안됩니다.

set_source_files_properties 명령을 포함하지 않는 CMakeLists.txt를 확인하십시오.

당신이 파일과 뭔가를하려는 경우, 여기 일을하는 두 가지 방법이 있습니다 : 당신이 그들을 추가하고 프로젝트를 빌드 할 때 사용자 정의 그 명령을 실행할 수 있습니다 add_custom_target와

합니다. 파일이 변경되었음을 알립니다.

configure_file을 사용하면 필요할 경우 쉽게 빌드 디렉토리에 복사 할 수 있습니다. COPYONLY 플래그.

관련 문제