GCC로 컴파일된 C/C 애플리케이션 내에 외부 바이너리 데이터를 쉽게 포함하려면 다음 방법을 고려하십시오.
ld의 객체 생성 활용 기능:
링커인 ld는 모든 파일을 개체로 변환하는 기능을 제공합니다. 파일을 포함하려면 다음 명령을 실행하세요.
ld -r -b binary -o binary.o foo.bar # then link in binary.o
이렇게 하면 다음과 같은 기호가 포함된 개체 파일("binary.o")이 생성됩니다. as:
예를 들어, 다음을 사용하여 포함된 간단한 텍스트 파일의 내용에 액세스하려면 방법:
#include <stdio.h> extern char _binary_foo_bar_start[]; extern char _binary_foo_bar_end[]; int main(void) { // Print the contents of the embedded resource for (char* p = _binary_foo_bar_start; p != _binary_foo_bar_end; ++p) { putchar( *p); } return 0; }
Bin2c/Bin2h 유틸리티 사용:
이 유틸리티는 파일을 바이트 배열로 변환합니다. 결과 배열을 코드에 통합합니다.
ld 객체 생성의 예:
리소스를 객체 파일에 통합하는 방법은 다음과 같습니다.
ld -r -b binary -o foo.bar.o foo.bar
결과 개체 파일에는 다음이 포함됩니다. 기호:
내 포함된 리소스에 액세스하려면 코드:
unsigned int iSize = (unsigned int)(&_binary_foo_bar_end - &_binary_foo_bar_start);
리소스 크기를 결정하는 대체 방법을 제공합니다.
위 내용은 GCC를 사용하여 리소스를 실행 파일에 원활하게 포함하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!