Tôi hiện đang nghiên cứu C++. Tôi muốn một makefile mà sẽ biên dịch tất cả các tập tin cpp trong thư mục hiện hành để tách thực thi. Ví dụ:Makefile biên dịch tất cả các tệp cpp trong một thư mục thành tệp thực thi riêng biệt
Trong một thư mục có 3 C++ file, chẳng hạn như examp1.cpp, examp2.cpp và examp3.cpp. Tôi muốn có một makefile mà sẽ biên dịch và liên kết chúng và đưa ra examp1.exe, examp2.exe và examp3.exe
Tôi đã tạo ra một kịch bản bash để biên dịch tất cả trong số họ và tạo ra người yêu cũ nhưng tôi nghĩ rằng; đó không phải là cách chính xác để làm điều này.
Tôi có một Makefile cho ".c", nhưng điều đó dường như không hoạt động ở đây. Nó chỉ tạo các tệp đối tượng và không thực sự liên kết nó. Nó như sau:
SRCS=$(wildcard *.c)
OBJS=(SRCS:.c=.o)
all: $(OBJS)
Đoạn mã trên biên dịch tất cả các tệp ".c" mới và đã sửa đổi có cùng tên trong thư mục hiện tại.
Các kịch bản bash Tôi đang sử dụng để tạo ra thực thi như sau:
for i in ./*.cpp
do
g++ -Wno-deprecated $i -o `basename $i .cpp`".exe"
done
này có nghĩa là tôi muốn bất cứ điều gì "cpp" file tôi đặt trong thư mục đó, bằng cách sử dụng một cách đơn giản 'làm cho tất cả' hay bất cứ điều gì như vậy nó nên biên dịch.
Bạn đã cố gắng tạo một tệp makefile chưa? Nếu vậy hãy đăng nó để chúng tôi có thể giúp bạn. Có [tài liệu] (http://www.gnu.org/software/make/manual/make.html) có sẵn để bắt đầu. – Joe
Các phiên bản làm thay đổi từ nhà cung cấp này sang nhà cung cấp khác. Bạn đang sử dụng cái gì? Bạn đang sử dụng GNU Make on Linux? Microsoft thực hiện trên Windows/Visual C++? –
Bạn đã thử viết một tệp makefile sẽ biên dịch * một tệp nguồn * và tạo một tệp thực thi? – Beta