2012-11-12 35 views
12

Tôi đang tạo một makefile và một trong các mục tiêu là exptrtest.o làm cách nào để sử dụng g ++ để tạo một objectfile với tên đó, tên của tệp cpp của tôi là exprtest.cpp không phải exptrtest.cpp?Làm cách nào để sử dụng g ++ để tạo tệp đối tượng có tên cụ thể

exptrtest.o: exprtest.cpp 
    g++ -Wall -g -c exprtest.cpp 

để làm cho nó rõ ràng hơn, đây là makefile của tôi:

all: exprtest 
exprtest: exptrtest.o driver.o parser.tab.o scanner.o 
    g++ -Wall -g -o exprtest exptrtest.o driver.o parser.tab.o scanner.o 
exptrtest.o: exprtest.cpp 
    g++ -Wall -g -c exptrtest.o exprtest.cpp 
driver.o: driver.cpp scanner.hpp driver.hpp 
    g++ -Wall -g -c driver.cpp 
parser.tab.o: parser.tab.hpp parser.tab.cpp 
    bison parser.ypp 
    g++ -Wall -g -c parser.tab.cpp 
scanner.o: scanner.cpp scanner.hpp 
    flex -t scanner.ll > scanner.cpp 
    g++ -Wall -g -c scanner.cpp 
clean: 
    rm parser.tab.hpp parser.tab.cpp scanner.cpp 

Tôi nhận được lỗi: "g ++: lỗi: exptrtest.o: Không có tập tin hoặc thư mục thực hiện: * [exprtest] Lỗi 1 "

+0

"g ++ -c name.cpp" sẽ tạo tên.o. Sử dụng cờ -o để tạo tên đầu ra khác. –

Trả lời

26

Sử dụng tùy chọn -o kết hợp với -c.

exptrtest.o: exprtest.cpp 
    g++ -Wall -g -c exprtest.cpp -o exptrtest.o 
Các vấn đề liên quan