![.a lib 파일에서 상수 값을 보는 방법은 무엇입니까?](https://linux55.com/image/111592/.a%20lib%20%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C%20%EC%83%81%EC%88%98%20%EA%B0%92%EC%9D%84%20%EB%B3%B4%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
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