2014-02-09 47 views
0

Autoconf可以幫助生成configure腳本,該腳本一般會接受名爲--prefix的選項。通過這種方式,用戶可以指定安裝程序/數據的路徑。如何在源文件中使用由autoconf創建的PREFIX

在我的程序中,我想引用數據文件的安裝位置。在平原生成文件,它可以像

GCC -DPREFIX 「的/ usr /共享」

和源文件中來完成,在

的#define DATAPATH PREFIX生成數據路徑 「/數據」

與autoconf,我怎麼可以使用源代碼中--prefix指定的路徑?是否有預定義的MACRO?

+2

如果應用程序在'make install'後重新定位/重新包裝會怎麼樣?編譯/ make安裝時間--prefix是你在運行時不應該依賴的東西。 –

+0

這個想法是關於引用一些需要在運行時加載的圖像文件。這些映像文件被安裝到「/ usr/share/pkgname/images。那麼最好的解決方案是什麼呢? – jcadam

回答

0

這個問題可以通過automake來解決。定義AM_CFLAGS

AM_CFLAGS = -DPKGDATA=$(pkgdata) 

Automake會延長$(pkgdata)到/usr/share/<pkgname>/如果--prefix/usr/

+1

我建議使用'AM_CPPFLAGS' - 畢竟這是一個預處理器定義 - 它會出現在C/C++編譯。實際上,用'--prefix'等設置的許多有用變量[已經可用](http://www.gnu.org/software/autoconf/manual/autoconf.html#Installation-Directory - 變量)到'Makefile.am'。 –

相關問題