2016-07-06 72 views
0

我有一個C文件:編譯C結構來bin文件

#include <stdint.h> 

typedef struct { 
    uint32_t m1; 
    uint16_t m2; 
} TStruct; 

TStruct s = { 
    1, 
    2 
}; 

如何編譯用gcc產生小尾數二進制文件這個文件?

0x01 0x00 0x00 0x00 0x02 0x00 
+0

編譯它爲一個使用little endian的arch ...而且你還必須照顧對齊。 – LPs

回答

-1

大概

objcopy -O binary 

是你在找for.See [ this ]什麼事這麼回答。

0

雖然Little-Endian是所有標準配置的默認設置。其他配置的編譯器工具包可以使用此開關來獲取所需的格式。

gcc file.c -mlittle-endian 

你去那裏..

0

我猜搭售其他答案在一起。在一個小端機器(x86)上:

[email protected] ~/se $ cat foo.c 
#include <stdint.h> 

typedef struct { 
    uint32_t m1; 
    uint16_t m2; 
} TStruct; 

TStruct s = { 
    1, 
    2 
}; 
[email protected] ~/se $ gcc -c foo.c 
[email protected] ~/se $ objcopy -O binary foo.o foo 
[email protected] ~/se $ hexdump -C foo 
00000000 01 00 00 00 02 00 00 00       |........| 
00000008