Tôi là một lập trình viên C++ khá mới. Tôi đã thực hiện một trò chơi rất đơn giản bằng cách sử dụng thư viện SDL. Trò chơi của tôi, một cách tự nhiên, sử dụng một số hình ảnh, âm thanh và phông chữ. Tôi đã muốn phân phối gói, nơi người dùng có thể định cấu hình & &. Nó không giống như trò chơi đơn giản này là giá trị phân phối, nhưng tôi muốn tìm hiểu cách autoconf và automake hoạt động. Tôi đã tìm kiếm các ví dụ trên internet nhưng các hướng dẫn tôi có thể tìm thấy chỉ hiển thị việc cài đặt một chương trình helloworld đơn giản. Họ không nói về cài đặt các tập tin dữ liệu, cũng không phải làm thế nào để kiểm tra xem một số thư viện tồn tại để tôi có thể liên kết với chúng trong thời gian biên dịch. Và cũng có thể, chương trình của tôi nên biết nơi mỗi tập tin được cài đặt để nó có thể tải chúng. Tôi đã nghiên cứu kỹ các tài liệu tự động hóa và autoconf, nhưng chúng giống như một tài liệu tham khảo hơn là một tài nguyên cho những người mới. Bất cứ ai có thể giải thích ngắn gọn về khái niệm này, hoặc dẫn tôi đến một nơi nào đó mà tôi có thể đọc về chúng.Làm thế nào để đóng gói các tệp dữ liệu bằng tự động cấu hình và tự động của GNU
Trả lời
Tôi đã thực hiện một số nghiên cứu về điều này và tôi muốn chia sẻ những gì đã làm việc cho tôi. Tôi đã tạo cấu trúc thư mục như sau:
/
|->src/
| |-> Makefile.am
| |-> main.cpp
| |-> functions.cpp
|
|-> data/
| |-> Makefile.am
| |-> somethings.png
| |-> something.mp3
|-> configure.ac
|-> README
|-> NEWS, AUTHORS etc. etc.
Tôi đã đặt tất cả hình ảnh, phông chữ, âm thanh, v.v ... vào thư mục dữ liệu. Makefile.am trên thư mục dữ liệu trông giống như sau:
pkgdata_DATA = esound.wav \
another.wav \
apicture.png
Nó chỉ liệt kê tất cả các tệp cần kết thúc trong thư mục dữ liệu. Các Makefile.am trong thư mục src trông như thế này:
bin_PROGRAMS = mygame
mygame_SOURCES = main.cpp functions.cpp
AM_CPPFLAGS = -DDATADIR=\"$(pkgdatadir)\"
Phần quan trọng ở đây là AM_CPPFLAGS, trong đó xác định datadir vĩ mô, theo các tùy chọn truyền cho script configure. Vì vậy, sau đó chúng ta có thể sử dụng macro này trong các tập tin nguồn của chúng tôi như thế này:
background = load_image(DATADIR "/background.png");
Vì vậy mà chương trình của bạn sẽ được biên soạn biết nơi nào màu nền nên nằm trong hệ thống tập tin.
Bạn có nên sử dụng dist_pkgdata_DATA nếu bạn muốn phân phối không? –
- 1. Tự động đóng các tệp của nó?
- 2. Làm cách nào để tự động cấu hình CPAN?
- 3. Làm thế nào để ngăn chặn PyCharm tự động đóng các tệp đã mở?
- 4. Tự động đóng QMessageBox
- 5. Làm thế nào để tự động gia tăng kiểu dữ liệu mô hình
- 6. Làm cách nào để tự động tải dữ liệu trong gói R?
- 7. Làm cách nào để tự động cập nhật hình matplotlib của tôi khi tệp dữ liệu thay đổi?
- 8. Tài liệu tự động về các tập dữ liệu
- 9. Cách định cấu hình đẩy tự động?
- 10. Có cách nào để tự động chia màn hình trong Màn hình GNU không?
- 11. Làm thế nào để tự động đóng NERDTree sau khi một tệp đã được mở?
- 12. Unix tìm bằng GNU Hãy tự động cập nhật các tệp
- 13. Làm thế nào để bạn tự động tải lại các tệp cấu hình cá như bạn làm trong bash?
- 14. TinyMCE: đóng gói tất cả các tệp thay vì tự động tải chúng ... có thể?
- 15. Làm thế nào để cài đặt cây thư mục dữ liệu với tự động
- 16. Tự động khởi động cấu hình CPU với VisualVM
- 17. Làm cách nào để ngăn Emacs tự động chỉnh sửa tệp khởi động của tôi?
- 18. Tự động cấu hình lại reinitialization trong Spring
- 19. Làm cách nào để tự động thêm các gói sau khi Application_Start đã xảy ra?
- 20. Làm thế nào để tự động cấu hình lại tính năng tự động hoàn thành dựa trên jQuery của Drupal khi chạy?
- 21. C++ dữ liệu Member Alignment và mảng đóng gói
- 22. Tôi có thể định cấu hình pydev để tự động biên dịch các tệp cython không?
- 23. Tài liệu tự động của mã ColdFusion
- 24. ProxySelector của Java có hoạt động với các kịch bản cấu hình proxy tự động không?
- 25. Làm cách nào để đóng gói tệp bằng hộp Vagrant?
- 26. Tự động khởi động lại ứng dụng Net khi thay đổi cấu hình
- 27. Làm cách nào để thực hiện kiểm tra đơn vị tự động trong các gói SSIS?
- 28. Làm thế nào để tự động tạo mẫu dựa trên dữ liệu thực?
- 29. Tự động hóa từ: Thay thế hình ảnh bằng C#
- 30. Eclipse tự động định dạng, vô hiệu hóa tự động dòng gói của dòng chú thích
Tôi đã tìm ra cách tốt nhất để đi với autoconf/automake là tìm một dự án tương tự như dự án của bạn, xem họ làm gì và làm việc từ đó với tài liệu. –
Bạn có thể muốn xem cuốn sách của John Calcote "Autotools: Hướng dẫn của Practioner về GNU Autoconf, Automake, và Libtool" –
Hãy thử [Goat Book] (http://sourceware.org/autobook/) để có một giới thiệu dễ đọc hơn autotools. Họ có một vài dự án ví dụ về sự phức tạp khác nhau cho thấy cách thực hiện những điều phổ biến nhất với autotools. – ldav1s