我有一個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
我有一個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
雖然Little-Endian是所有標準配置的默認設置。其他配置的編譯器工具包可以使用此開關來獲取所需的格式。
gcc file.c -mlittle-endian
你去那裏..
我猜搭售其他答案在一起。在一個小端機器(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
編譯它爲一個使用little endian的arch ...而且你還必須照顧對齊。 – LPs