2012-01-17 3 views
5

임베디드 시스템에서 실행되는 C++ 프로그램이 있습니다. 클라이언트가 문제를 만났을 때 그는 나에게 로그 파일을 보냅니다. 바이너리가 로그에 빌드 된시기를 정확하게 확인하는 것이 좋습니다.C++ 프로그램에서 linux/proc/version과 비슷한 기능을 어떻게 구현합니까?

...

const std::string APP_BUILD = "2012.01.17.18:28"; 

int main() 
{ 
    std::cout << "Was built: " << APP_BUILT << std::endl; 
} 

내가 뭘하고 싶은 것은 빌드하는 동안 APP_BUILD 자동으로 설정하는 것입니다 그래서 현재 내가이 단순하지만 매우 비효율적 인 방법을 사용합니다. 나는 리눅스가/proc/version 변수를 가지고있어 빌드 시간을 결정하기 위해 읽을 수 있음을 알고있다. 내 읽기

cat /proc/version 
Linux version 2.6.38-13-generic ([email protected]) (gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4)) #53-Ubuntu SMP Mon Nov 28 19:33:45 UTC 2011 

이 작업을 수행 할 수 있습니까? (나는 리눅스에서 내 애플 리케이션을 만들고있다).

+1

GCC [사전 정의 된 매크로] (http://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html)에서 원하는 데이터가 있는지 확인하십시오. –

+0

일부 버전 제어 시스템을 사용하고 있다면 (또한해야 함) 특정 버전을 고유하게 식별하는 문자열을 포함시키고 싶을 것입니다. –

+0

예, 저는 Mercurial을 사용하고 있습니다. 그렇게 할 수있는 방법이 있습니까? –

답변

9

__DATE____TIME__ 매크로를 찾는 것처럼 들립니다. 이 표준 매크로는 C 및 C++에서 모두 사용할 수 있습니다.

예를 들어 gcc manual을 참조하십시오.

+0

감사합니다! 그것에 대해 완전히 잊었습니다. –

관련 문제