.a lib 파일에서 상수 값을 보는 방법은 무엇입니까?

.a lib 파일에서 상수 값을 보는 방법은 무엇입니까?

Define 문을 사용하여 C 파일에 상수를 선언했습니다.

#define COMPRESSION_VERSION 1.0.0

libcompression.a이제 위의 C 파일을 포함하는 라이브러리를 만들었습니다 . 이제 터미널을 사용하여 라이브러리에 정의된 상수 값을 확인해야 합니다.

답변1

#define COMPRESSION_VERSION 1.0.0

컴파일은커녕 매크로 확장에서도 살아남지 못할 것으로 예상되는 C 전처리기 지시문입니다.

특정 기호를 라이브러리에 표시하려면 명시적으로 추가해야 합니다.

static const char * COMPRESSION_VERSION = "1.0.0";

그러면 라이브러리에 다음이 나타납니다.

$ nm -A libcompression.a
libcompression.a:compression.o:0000000000000000 d COMPRESSION_VERSION

당신은 그 가치를 확인하는 데 사용할 수 있습니다 objdump -s.

일반적인 기술은 버전을 기호에 삽입하는 것입니다.예를 들어OpenSSL의 경우:

$ nm -D /usr/lib/x86_64-linux-gnu/libssl.so.1.1|grep OPENSSL_1
0000000000000000 A OPENSSL_1_1_0
0000000000000000 A OPENSSL_1_1_0d

관련 정보