2011-09-20 4 views
1

그림을 개체 파일 (.o)로 변환해야 sde-objcopy를 사용할 수 있습니다. 그러면 우리의 no-os 시스템에서이 그림을 사용할 수 있습니다. objcopy 명령을 테스트했는데 내 PC (Fedora 12)에서 제대로 작동합니다. 예를 들어, 아래 명령은 test.jpg를 test.o로 변환합니다.sde-objcopy의 아키텍처를 지정하는 방법은 무엇입니까?

: 여기

objcopy -I binary -O elf32-i386 -B i386 ../stdy/test.jpg test.o

내 질문입니다. SDE-objcopy의이 아키텍처를 지정하는 "-B"옵션이되지 않습니다,하지만 난 아키텍처를 지정하지 않은 경우,이 같은 경고 reponse됩니다

$ sde-objcopy -I binary -O elf32-little test.jpg test.o

SDE-objcopy의를 : 경고 : 출력 파일은 UNKNOWN 아키텍처를 나타낼 수 없습니다!

경고를 어떻게 수정합니까?

b. objcopy는 파일 이름을 사용하여 오브젝트 파일에 심볼을 생성합니다. objcopy의 매개 변수로 전체 경로 (예 : /home/owner/stdy/test.jpg)를 사용하면 긴 이름의 심볼이 생성됩니다. 이 문제를 해결할 수있는 우아한 방법이 있습니까?

$ objcopy -I binary -O elf32-i386 -B i386 ../stdy/test.jpg test.o

$ nm test.o

00000083 D _binary____stdy_test_jpg_end 

00000083 A _binary____stdy_test_jpg_size 

00000000 D _binary____stdy_test_jpg_start 

$ objcopy -I binary -O elf32-i386 -B i386 test.jpg test.o 

$ nm test.o 
00000032 D _binary_test_jpg_end 

00000032 A _binary_test_jpg_size 

00000000 D _binary_test_jpg_start 
+0

I의 공학자 h 웹을 오랫동안 사용해 본 결과, sde-objcopy의 버전이 이전의 gnu-toolchain 코드 (2000 년 4 월 5 일, man sde-objcopy)를 기반으로한다는 것을 발견했으며, "-B"옵션은 2001 년까지 objcopy에 추가되었습니다. Redhat에서 일하는 프로그래머. 그래서 나는이 경고를 그냥 무시합니다. 두 번째 문제에 관해서는, 나는 우아한 방법을 찾을 수 없습니다. – Serval

+0

매우 유용한 Linux 명령을 발견했습니다. 모든 파일을 .h 파일로 변환 할 수 있습니다. 이 헤더 파일에는 배열과이 배열의 길이 인 정수가 들어 있습니다. 명령은 : xxd -i test.jpg> test.h – Serval

답변

0
당신은 같은 것을 사용할 수

:

# data.s 
.section ".rodata" 
.globl font_data_start, font_data_end 
font_data_start: 
.incbin "Zitz-Regular.ttf" 
font_data_end: 
.size font_data_start, font_data_end - font_data_start 

를 다음 프로그램에서 물건을 액세스 :

/* prog.c */ 
extern const char font_data_start[], font_data_end[]; 
void function() { 
    fwrite(font_data_start, font_data_end - font_data_start, 1, stdout); 
} 
+0

게시물의 품질을 향상 시키려면 답변으로 인해 문제가 해결되는 이유/이유를 포함 시키십시오. –

관련 문제