2015-11-30 60 views
1

我試圖找到一種方法來獲取我的庫的版本,使用進行編譯。檢索使用自動工具生成的lib版本

makefile.am添加-version-info 1:1:1LD_FLAGS和輸出是確定的:lib.so.0.1.1

我需要的是檢索運行時庫的版本,並顯示在信息面板上。

我想在兩個不同的方式來做到這一點:

  1. 使用外部文件(如標題)。在那裏我可以定義版本,並且使makefile.am能夠從中讀出的版本值。通過這種方式,我也可以從我的代碼中訪問它。
  2. 一種方式,不同於在FS上解析庫的文件名,以檢索由-version-info選項設置的版本。

其中一個想法是否適用?

+0

我已經使用選項#1 –

+0

看到很多項目@EmilCondrea我太多,但不與自動工具。你可以用libtool演示如何做到這一點? – LPs

+0

您是否也考慮過在CFLAGS中傳遞版本:-DVERSION = 0:1:1?(能夠從代碼中讀取) –

回答

1

定義LIB_VERSION = 0:1:1

使用它:-version-info $(LIB_VERSION),如果你想從代碼中使用它,它追加到CFLAGS:-DVERSION=$(LIB_VERSION)

+0

謝謝。好主意,但我正在尋找一種解決方案,讓makefile保持原樣。換句話說,每次發佈新版本時,並不意味着要修改makefile。 – LPs

+0

在configure.ac中基本上添加一個AC_DEFINE([LIB_VERSION],0:1:1)在config.h中生成一個定義,並且使用該值,您可以在代碼中使用它。 –

+0

如果您不想手動修改生成文件,也許可以使用設置環境變量(將用於生成常量和-version-info值)或自動修改configure.ac的腳本。 –

相關問題