2011-10-02 2 views
2

보통 소스 관리 저장소에 바이너리를 포함시키지 않아야합니다. 나는 수은을 사용하고 있으며, 버전을 포함하는 경험이있는 사람이 누구인지 알고 싶습니다) C 바이너리에서, 그래서 배포 할 때 mybinaryApp --version과 같은 명령 줄 인수를 사용하면 빌드 타임에 제어 할 수있는 고유 한 버전이 생깁니다.리눅스 플랫폼에서 C 바이너리 파일을 "버전 화"하려면 어떻게해야합니까?

+0

어떤 C 컴파일러를 사용하고 있습니까? –

+0

@ Foo Bahu gcc를 사용 중입니다. – kamal

답변

0

코드에 버전 번호를 포함시키는 방법은 별도의 헤더 파일에서 #define _VERSION_MAJOR으로하고 버전 번호가 필요한 파일에 코드 번호를 포함시킨 다음 필요한 위치에서 해당 매크로를 사용하십시오. 그런 다음 원본 파일을 계속 수정할 필요없이 다른 원본 파일에서 버전 번호를 자유롭게 제어 할 수 있습니다.

이것은 가장 진보 된 도구의 본질입니다.

또는 빌드 특정 태그를 원할 경우 __DATE____TIME__을 사용하여 빌드 타임을 삽입 할 수 있습니다.

0

일반적인 방법은 autotools (autoconf & automake & autoheader & 등)를 사용하는 것입니다. 이들은 사용 가능한 config.h 파일을 만들고,이 파일은 --version을 사용하여 출력 할 수있는 PACKAGE_VERSION 매크로를 정의합니다.

이 프로세스는 버전 제어와는 관련이 없습니다. 이것에 대한 간단한 이유는 프로젝트를 소스 코드 타르볼로 배포하고자 할 것이고 사람들은 버전 제어에 액세스하지 않고 해당 타르볼을 빌드해야합니다.

관련 문제