GCC를 사용하여 실행 파일에 리소스 삽입
GCC로 C/C 애플리케이션을 개발할 때 외부 바이너리 데이터를 직접 실행 파일에 삽입하는 것이 편리할 수 있습니다. 실행 파일. 이는 별도의 리소스 파일이 필요하지 않아 배포를 단순화합니다.
GCC의 임베딩 기능
GCC는 리소스 임베딩에 대해 두 가지 주요 접근 방식을 제공합니다.
사용 ld:
bin2c/bin2h 사용 유틸리티:
예시 ld
ld를 사용하는 더 자세한 예는 다음과 같습니다.
#include <stdio.h> extern char _binary_foo_bar_start[]; extern char _binary_foo_bar_end[]; int main(void) { printf("Address of start: %p\n", &_binary_foo_bar_start); printf("Address of end: %p\n", &_binary_foo_bar_end); for (char* p = _binary_foo_bar_start; p != _binary_foo_bar_end; ++p) { putchar(*p); } return 0; }
이 예에서는 foo.bar라는 파일이 개체 파일(foo.bar.o)로 변환됩니다. 다음을 사용:
ld -r -b binary -o foo.bar.o foo.bar
그런 다음 링커는 실행 파일을 빌드할 때 foo.bar.o를 포함하여 다음을 통해 바이너리 데이터에 액세스할 수 있도록 합니다. _binary_foo_bar_start 및 _binary_foo_bar_end 기호.
크기 결정
포함된 리소스의 크기를 결정하려면 다음을 사용하세요.
unsigned int iSize = (unsigned int)(&_binary_foo_bar_end - &_binary_foo_bar_start);
위 내용은 내 GCC 실행 파일에 리소스를 어떻게 포함할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!