Giả sử có một chương trình C, lưu trữ phiên bản của nó trong toàn cầu char*
trong main.c. Có thể hệ thống builds (gnu make) bằng cách nào đó trích xuất giá trị của biến này vào thời gian xây dựng, sao cho tệp thi hành được xây dựng có thể có tên phiên bản chính xác như nó xuất hiện trong chương trình không?Có thể gán các biến makefile với các giá trị được đọc từ các tệp nguồn không?
Những gì tôi muốn đạt được là đưa nguồn:
char g_version[] = "Superprogram 1.32 build 1142";
các buildsystem sẽ tạo ra một file thực thi có tên Superprogram 1.32 build 1142.exe
Mặc dù chuỗi phiên bản của ông có vẻ nghi ngờ hand-crafted, tôi cũng sẽ khuyên nên kiểm tra 'công cụ what'. Điều đó cộng với 'vỏ 'có thể là những gì anh ta đang tìm kiếm. – Dummy00001
Cảm ơn bạn đã trả lời, điều này có thể thực sự hoạt động, miễn là tôi tăng tốc độ khả năng của mình trên sed (và các utils khác, được đề cập dưới đây bởi mouviciel) ... – Manjabes