Tôi vừa mới viết một Makefile để xây dựng một thư viện chia sẻ, tương tự như sau:Makefile cho Thư viện được chia sẻ?
libmystuff.so: CFLAGS+=-fPIC -shared
libmystuff.so: libmystuff.o otherstuff.o
$(CC) $(CFLAGS) -o [email protected] $^
Tôi thích để tránh làm những hành động rõ ràng khi điều này có vẻ như một hoạt động phổ biến, nhưng có vẻ như không có quy tắc ngầm hay khác được xây dựng để tiêu chuẩn hóa này. Tôi đang sử dụng GNU Thực hiện trên Linux tại thời điểm này, nhưng sẽ cần điều này để làm việc trên OS X là tốt.
EDIT: Tôi hỏi về thực hiện các quy tắc thay vì biên dịch/cờ liên kết.
Bạn có thể đề xuất các quy tắc Makefile sạch sẽ, có thể tái sử dụng để xây dựng các thư viện được chia sẻ không? Có thể là quy tắc loại %.so:
hoặc .c.so:
?
libtool có vẻ là cách tốt nhất. Đó là một sự xấu hổ hướng dẫn sử dụng ném bạn đến những con sói (xem http://www.gnu.org/software/libtool/manual/libtool.html#Makefile-rules) trừ khi bạn đang sử dụng toàn bộ bộ Autotools. – dwc