Tôi có một Makefile.am mà sẽ chịu trách nhiệm xây dựng một ứng dụng nhị phân thức:Làm cách nào để chỉ định trong tập lệnh Makefile.am mà tôi chỉ muốn biên dịch các tệp .o đối tượng có thể được liên kết sau này?
dự án/src/Makefile.am
cũng trong thư mục src là một thư mục con gọi là ctrnn chứa thêm Makefile.am:
dự án/src/ctrnn/Makefile.am
Bây giờ, ctrnn/Makefile.am chỉ nên tạo ra đối tượng .o files với ý tưởng được rằng cấp cao nhất Makefile.am nên sử dụng các tệp đối tượng được tạo trong thư mục con ctrnn để tạo tệp nhị phân.
Đây là ctrnn/Makefile.am
SOURCES = network.cpp\
neuron.cpp
AM_CPPFLAGS= @[email protected]
Dựa trên tập tin Makefile.am này, tôi muốn kết thúc với network.o và neuron.o. Tôi tạo ra Makefile theo sử dụng automake vv, nhưng khi tôi cố gắng và sau đó thực hiện làm cho tập tin, nó không làm bất cứ điều gì và chỉ nói:
thực hiện: Không có gì phải làm cho `tất cả'
tôi biết tại sao điều này là, tôi cần phải xác định mục tiêu xây dựng. Nhưng làm thế nào để tôi làm điều này trong kịch bản ctrnn/Makefile.am cho rằng tôi không muốn xây dựng một nhị phân mà sẽ yêu cầu bin_PROGRAMS nhưng các tập tin đối tượng thực tế network.o và neuron.o?
(Lưu ý nếu tôi chỉ định tên bin_PROGRAMS, nó sẽ kết thúc đúng khi khiếu nại về tham chiếu chưa được xác định cho chính).
Tôi làm gì sai?
Xin cảm ơn, Ben.
Cảm ơn! Tôi đã kết thúc bằng cách sử dụng phương pháp libtool, hoạt động hoàn hảo :-) –
Cảm ơn một bàn tay giúp đỡ cho tôi phấn đấu trong autotools/libtool địa ngục. Và làm tất cả chúng ta một ân huệ: sống lâu và thịnh vượng! – rockdaboot
foo_LDADD? Không phải là nghĩa vụ phải là foo_LIBADD –