2009-11-27 26 views
6

Tôi đang viết thư viện thử nghiệm đơn vị của riêng mình (sử dụng autoconf, automake và libtool) để phù hợp hơn với nhu cầu của tôi (tôi không cần một số lượng lớn các tính năng, chỉ cần một thử nghiệm và xác nhận). Tôi đã đến mức có vẻ như có thể sử dụng được.Autoconf - Nơi nào config.h đi?

Tất nhiên, nó sử dụng cấu hình để tìm ra các tiêu đề cần đưa vào. Vấn đề là tôi không chắc chắn nơi config.h nên đi vì nó sẽ có xu hướng xung đột dễ dàng với config.h của dự án khác, cũng như thực tế là nó phụ thuộc vào kiến ​​trúc.

Phương pháp của tôi nên để cài đặt tiêu đề này là gì? (Cần tất cả các tiêu đề khác)

+6

Phương pháp cài đặt config.h phải giống như phương pháp hủy hệ thống tệp của bạn. Bạn có thể đổ axit vào ổ cứng hoặc thả máy ra khỏi tòa nhà 90 tầng hoặc thả nó xuống hồ. Nhưng một lựa chọn tốt hơn là không làm điều đó. Config.h chỉ nên được sử dụng trong thư mục build khi bạn biên dịch dự án của mình. Nó không nên được cài đặt. –

Trả lời

5

Macro ax_prefix_config_h có vẻ giống như những gì bạn muốn. Nó cung cấp một cách để tạo ra một tập tin config.h giống như có chứa thông tin config.h tiền tố. Vì vậy, ví dụ: thay vì #define HAVE_SOMETHING trong config.h bạn sẽ nhận đượC#define MYLIB_HAVE_SOMETHING trong mylib_config.h. Khá tiện dụng.

+0

Tuyệt vời! Cảm ơn. – alternative

0

Bạn có thể chọn tạo tệp cấu hình khác bằng cách thay đổi macro AC_OUTPUT, mặc dù tôi không chắc chắn cách bạn dự án sẽ tích hợp với các dự án khác. Nếu đó là một tiểu dự án, thì nó sẽ nằm trong một thư mục con.

2

Bạn không nên xuất config.h trong giao diện thư viện của mình.

This link hiển thị một phương pháp để làm việc đó nếu các tiêu đề được cài đặt của bạn thực sự, thực sự cần phải phụ thuộc vào nền tảng. Nó là một phương pháp dễ vỡ bằng cách sử dụng macro autoconf lỗi thời.

Các vấn đề liên quan