#define COMPRESSION_VERSION 1.0.0
é uma diretiva de pré-processador C, que não deve sobreviver à expansão macro, e muito menos à compilação.
Se você quiser um símbolo que apareça na sua biblioteca, você precisa adicioná-lo explicitamente; por exemplo
static const char * COMPRESSION_VERSION = "1.0.0";
Isso aparecerá na sua biblioteca:
$ nm -A libcompression.a
libcompression.a:compression.o:0000000000000000 d COMPRESSION_VERSION
e você pode ver seu valor usando objdump -s
.
Uma técnica comum é incorporar a versão no símbolo; por exemplo, para 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