我是一個相當新的C++程序員。我用SDL庫做了一個非常簡單的遊戲。自然,我的遊戲使用了一些圖像,聲音和字體。我想做一個包的分配,在那裏用戶可以配置& & make。這不像是這個簡單的遊戲值得分發,但我想了解autoconf和automake是如何工作的。我搜索了互聯網上的例子,但是我可以找到的教程只顯示了一個簡單的helloworld程序的安裝。他們既不談論數據文件的安裝,也不知道如何檢查某些庫是否存在,以便我可以在編譯時連接它們。而且,我的程序應該知道每個文件的安裝位置,以便它可以加載它們。我研究過automake和autoconf手冊,但它們更像是一個參考資料,而不是成爲新來者的資源。任何人都可以簡單地解釋這個概念,或者讓我到一個可以閱讀它們的地方。如何使用GNU的autoconf和automake打包數據文件
6
A
回答
13
我已經做了一些研究,我想分享一下我的工作。我創建了一個目錄結構是這樣的:
/
|->src/
| |-> Makefile.am
| |-> main.cpp
| |-> functions.cpp
|
|-> data/
| |-> Makefile.am
| |-> somethings.png
| |-> something.mp3
|-> configure.ac
|-> README
|-> NEWS, AUTHORS etc. etc.
我已經把我所有的圖片,字體,聲音等數據文件夾中。在數據文件夾Makefile.am看起來是這樣的:
pkgdata_DATA = esound.wav \
another.wav \
apicture.png
它只是簡單地列出所有需要在數據目錄中結束的文件。該Makefile.am src文件夾中是這樣的:
bin_PROGRAMS = mygame
mygame_SOURCES = main.cpp functions.cpp
AM_CPPFLAGS = -DDATADIR=\"$(pkgdatadir)\"
重要這兒的一部分是AM_CPPFLAGS,它定義DATADIR宏,根據傳遞給configure腳本的選項。這樣的話我們可以在源文件中使用這個宏是這樣的:
background = load_image(DATADIR "/background.png");
使你的程序會被編譯知道哪裏背景文件應駐留在文件系統中。
+0
如果你想分發它,你應該使用dist_pkgdata_DATA嗎? – 2017-06-23 16:58:17
相關問題
- 1. 使用automake和autoconf包括動態庫
- 2. 使用autoconf/automake時,如何指定包含文件路徑?
- 3. 選擇autoconf和automake版本
- 4. Autoconf/Automake條件和dist規則
- 5. GNU autoconf,使用doxygen的文檔選項?
- 6. 將GNU autoconf/automake放在helper腳本的位置?
- 7. 的Autoconf/Automake的生成
- 8. 的autoconf automake的LDADD語法
- 9. 的autoconf automake的和與-02與-O3
- 10. 如何將autoconf/automake指向非標準包
- 11. Ubuntu問題設置autoconf和automake
- 12. Autoconf/Automake「configure.ac:2:option`-Wall'not recognized」
- 13. 如何在Autoconf中包含.m4文件?
- 14. 如何正確更新m4,autoconf,automake和libtool? Mac OSX
- 15. 如何在Autoconf/Automake項目中使用apache模塊和從屬共享庫
- 16. 無法建立GNU的automake
- 17. 如何到Android Linphone中添加的autoconf,automake的,aclocal會,libtoolize,pkgconfig
- 18. 使用automake安裝包含大量文件的數據目錄樹
- 19. Automake/autoconf配置安裝爲SUID
- 20. Automake/Autoconf腳本自定義目錄
- 21. autoconf,如何從AC_CONFIG_SRCDIR文件包含文件
- 22. 如何在windows計算機上安裝autotools(autoconf,automake,aclocal,libtoolize pkgconfig)
- 23. 如何打包jar文件和mysql數據庫
- 24. Automake和同名文件
- 25. 如何使用pkginclude_HEADERS和Automake獲取第二個包含目錄?
- 26. 如何automake不遞歸包?
- 27. 如何使用Pyinstaller打包.jar文件
- 28. 如何使用Vagrant框打包文件?
- 29. 如何有條件地包含sub automake配置文件
- 30. GNU Radio/MATLAB - 如何使用Matlab文件作爲GNU Radio中的文件源
我發現使用autoconf/automake最好的方法是找到一個類似於你自己的項目,看看他們做了什麼,然後從那裏用文檔處理。 – 2012-02-11 17:57:43
您可能想看看John Calcote的書「Autotools:GNU Autoconf,Automake和Libtool實踐者指南」 – 2012-02-12 13:05:07
嘗試使用[Goat Book](http://sourceware.org/autobook/)獲取更易讀的介紹自動工具。他們有幾個複雜程度不同的示例項目,展示瞭如何使用自動工具完成最常見的事情。 – ldav1s 2012-02-11 19:03:58