Как хранить и извлекать данные из двоичного файла Linux - PullRequest
0 голосов
/ 21 мая 2019

Я использую arm-none-linux-gnueabi-g ++ для компиляции кода c ++, который будет работать на встроенном устройстве Linux.

Я использую arm-none-linux-gnueabi-g ++ под windows и получить в качестве вывода двоичный файл, который будет работать на компьютере с Linux.

Чтобы установить на встроенном устройстве новый двоичный файл, мне нужно создать архивный файл (zip) с двоичным файломфайл и еще несколько файлов настроек.

пока все в порядке.

Мне нужно автоматизировать это так, чтобы файл архива создавался автоматически при имени версии двоичного файла.

В настоящее время,мы сохраняем версию как простую постоянную переменную std :: string в коде.Мы используем эту строку при печати диагностики, ведения журнала и т. Д.

Как я могу прочитать это из двоичного файла версии?

Или могут ли другие методы достичь этой цели?

Я подумал, что может сохранить его в каком-то постоянном месте в двоичном файле и прочитать его оттуда, но на самом деле не знаю, как это сделать, не повредив двоичный файл.

Ответы [ 2 ]

3 голосов
/ 21 мая 2019

Вы создаете файл автоматически, поэтому я предполагаю, что вы сначала его компилируете, а затем создаете архив с полученным двоичным файлом.

Вы можете сохранить версию в текстовом файле, а #include этот файл в своем коде:

const std::string version = 
#include "version.txt"
;

В version.txt:

"version string"

А при создании архива вы легко можете разобрать версию из текстового файла.

2 голосов
/ 21 мая 2019

Виль верен.

В настоящее время вы делаете это задом наперед!

Ваша система сборки должна предоставлять версию для исполняемого файла, а не наоборот.Как только это будет исправлено, ваша система сборки может предоставить ту же версию другим элементам, таким как имя файла ZIP.

В идеале версия должна генерироваться из системы контроля версий автономно, но вы можете указать ее в команде сборки, еслидействительно необходимо.

Можно извлечь некоторую строку из двоичного файла (подумайте nm, если есть эквивалент Windows), но это действительно обратный способ сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...