Как я "версия" двоичного файла C на платформах Linux - PullRequest
2 голосов
/ 02 октября 2011

обычно практикой не является включение бинарных файлов в репозитории управления исходным кодом, я использую mercurial и хотел бы знать, есть ли у кого-нибудь опыт внедрения версии (minor + major) в двоичный файл C, чтобы при его распространении используйте аргумент командной строки, такой как mybinaryApp --version, я получу уникальную версию, которой я могу управлять во время сборки.

Ответы [ 3 ]

0 голосов
/ 02 октября 2011

Обычным способом является использование автоинструментов (autoconf, automake & autoheader и др.). Они делают доступным включаемый файл config.h, и этот файл определяет макрос PACKAGE_VERSION, который вы можете распечатать с помощью --version.

Этот процесс не зависит от контроля версий. Простая причина этого заключается в том, что вы захотите распространить свой проект в виде архива с исходным кодом, и людям придется создавать этот архив без доступа к вашему управлению версиями.

0 голосов
/ 03 октября 2011

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

В этом суть того, что делают самые передовые инструменты.

В качестве альтернативы, если вам нужен специфичный для сборки тег, вы можете использовать __DATE__ и __TIME__ для вставки времени сборки.

0 голосов
/ 02 октября 2011

Вы ищете что-то вроде KeywordExtension ?

...