0

sqliteライブラリを使用しているソフトウェアパッケージがあります。この目的のために、sqlite.aを最終オブジェクトファイルにリンクして、最終パッケージ/バイナリを作成します。

バイナリが作成されたら、どのバージョンのSQLiteがそのバイナリにリンクされているかを確認する方法はありますか?ビルド環境(3.6.20、3.7.7.1)に複数のバージョンのSQLiteがあるので、これを尋ねます。実行中のバイナリの1つで問題が発生しましたが、そのバイナリを作成するために使用したライブラリのバージョンがわかりません。

これは私が取り組んでいるLinux(CentOS5)環境です。

助けてくれてありがとう。

4

2 に答える 2

1

バイナリ自体に、使用している SQLite のバージョンを記録または宣言するように指示できます。バイナリは、SQLite 定義からコンパイル時にこれを認識します。リンクは静的であるため、ビルドされたバージョンは使用されたバージョンと同じです。

于 2012-04-11T14:23:09.540 に答える
0

strings ./foo | grep "3\.[67]\.". 残念ながら、コードでこの文字列を出力する sqlite の関数を使用しなかった場合 ( などsqlite3_libversion())、それらはコピーされていない可能性があります。リンカーによって上書きされ、存在しない可能性があります。

于 2012-04-11T15:43:17.127 に答える