Tôi có mẫu makefile để biên dịch một DLL duy nhất (cho hệ thống plugin) hay không. Các makefile của người sử dụng trông như thế này:Cách kiểm tra xem tệp có tồn tại trong makefile
EXTRA_SRCS=file1 file2
include makefile.in
Trong makefile.in
tôi có:
plugin.dll: plugin.os $(patsubst %,%.os,$(EXTRA_SRCS))
đâu plugin.os
là C++ tập tin chính được biên dịch. Btw, các tệp có đuôi là .os
là các tập tin đối tượng biên soạn cho thư viện chia sẻ (ví dụ: sử dụng tùy chọn -fpic
với gcc
)
Bây giờ, vấn đề là các nguồn bổ sung này sẽ có thể (nhưng không nhất thiết) được tập tin tiêu đề. Lý tưởng nhất là tôi muốn thêm chúng làm phụ thuộc cho mục tiêu plugin.os
và file.cpp
, nhưng chỉ khi chúng tồn tại.
Phương pháp này sẽ hoạt động đối với cả windows và linux hoặc ít nhất là có thể thích ứng với từng cửa sổ. Tuy nhiên, tôi chỉ sử dụng phiên bản GNU.
đó không phải là những gì tôi muốn ... Tôi có một danh sách cụ thể của tập tin .h để kiểm tra ... – PierreBdR
Đó là ok, bạn không cần phải sử dụng ký tự đại diện. Sử dụng $ (wildcard $ (HEADER_FILES)) – JesperE