У меня есть некоторые двоичные данные в текстовом файле: имя файла: bin_data: 0x04 0x82 0x48 0x69
Я преобразовал их в двоичный файл, используя ld -r -b binary -o bin_data.o bin_data
Я написал одну программу CPP
имя файла: check.cpp
#include<stdio.h>
#include<stdint.h>
extern char _binary_bin_data_start[];
extern char _binary_bin_data_end[];
int main()
{
printf(" start \n");
printf( "address of start: %p\n", &_binary_bin_data_start);
printf( "address of end: %p\n", &_binary_bin_data_end);
for (char* p = _binary_bin_data_start; p != _binary_bin_data_end; ++p)
{
putchar( *p);
}
return 0;
}
Я скомпилировалcheck.cpp & genratedcheck.o
, чтобы прочитать данные из bin_data.o, мне нужно связать и файл, и сгенерированный ao и запустить.В моем приложении bin_data будет меняться для каждого моделирования, и я не хочу связывать check.o & bin_data.o каждый раз, когда происходит изменение в bin_data.здесь есть работа?так что мне не нужно связывать check.o & bin_data.o
Пример:
симуляция 1
bin_data файл: 0x04,0x82,0x48,0x69
ld -r -b binary -o bin_data.o bin_data -> generates bin_data.o
gcc -c check.cpp -> generates check.o
gcc check.o bin_data.o
./a.out
Выход:
0x04
0x82
0x48
0x69
моделирование 2
изменить данные в bin_data файл: 0x55,0x66,0x77,0x88,0x99
ld -r -b binary -o bin_data.o bin_data -> generates bin_data.o
//gcc -c check.cpp //want to avoid this step
//gcc check.o bin_data.o //want to avoid this step
./a.out
Выход:
0x55
0x66
0x77
0x88
0x99