.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

関連情報