2016-07-15 2 views
0

Code :: Blocks를 사용하고 있으며 내 프로그램의 아이콘을 컴파일하고 나머지 프로그램과 링크하고 싶습니다. 아이콘 파일은 icon.png라는 PNG 이미지이며 작업 영역의 프로젝트 폴더에있는 기타 폴더에 있습니다. 오른쪽 버튼을 클릭하고 옵션 메뉴에서 "파일 컴파일"및 "링크 파일"을 선택했습니다.Code :: Blocks에서 이미지를 컴파일하고 링크하는 방법

screenshot 어쨌든, 문제는 컴파일러가 나에게 "그러한 말한다 오류 메시지를 제공한다는 것입니다 : 경우이 조금 불분명, 나는 짓을했는지 정확히 보여주는 스크린 샷을 만든 적이있다 파일 또는 디렉토리 ". "파일 컴파일"을 선택했지만 "링크 파일"을 선택하지 않으면 컴파일 작업은 정상적으로 수행되지만 이미지는 컴파일되지 않습니다.

오류 메시지가 표시되지 않고 이미지 파일을 컴파일하는 방법을 알고 싶습니다. 첫째

+1

이미지 파일을 컴파일해서는 안됩니다 ... C/C++ 컴파일러는 C 및 C++ 만 컴파일합니다. PNG가 아님 (또는 다른 이미지) – Toby

+0

@ 토비 불가능하거나 불가능하다고 생각하십니까? (권장하지 않으면 내가 할 수 없다는 것을 알고 싶다.) –

+0

CodeBlocks의 C 프로그램에 실행 아이콘을 추가하는 방법과 동일한 문제가있다. - 여기에서 대답했다 : https ://stackoverflow.com/q/49164595/2441026 – user136036

답변

4

하자 정리 오해 : :)

컴파일 기계 코드가 포함 된 객체 파일로 소스 코드 회전의 행위이다. 을 연결하면이 개체 파일 사이의 종속성을 해결하고 사용 가능한 실행 파일/라이브러리를 출력합니다.

따라서 이미지를 컴파일하거나 링크하는 것은 의미가 없습니다. 바이트 배열로 이미지를 변환 IO

    • 아카이브 사용 파일로 프로그램을 배포하고있는 그 장소 :


      이 프로그램에 이미지를 얻는 과정 방법의입니다 C 파일. xxd -i 명령으로 수행 할 수 있습니다.

    • 개체 파일로 변환하여 연결하십시오. this question

    당신이 원하는 것은 파일 관리자에게 아이콘과 위치가 무엇인지 알려주는 것입니다. 파일 관리자는 바이트 배열이나 추가 섹션을 알 수 없습니다.

    Windows에서 PE 실행 파일은 미리 정의 된 .rsrc 섹션을 포함 할 수 있습니다. 다른 섹션에서는 사용할 아이콘을 지정할 수 있습니다. resource file을 작성한 후 특수 컴파일러에서 링크 할 수있는 오브젝트 파일로 컴파일합니다. MinGW를 사용하여이 작업을 수행하는 방법은 answer입니다.

  • 관련 문제