Tôi đang cố gắng thực hiện câu lệnh make để kiểm tra kiến trúc. Tôi rất chặt chẽ để nhận được nó để làm việc:Lỗi điều kiện Makefile
test:
ifeq ("$(shell arch)", "armv7l")
echo "This is an arm system"
else
echo "This is not an arm system."
endif
Tôi có một vấn đề: mặc dù điều này dường như quyết tâm ifeq ("i386", "armv7l")
mà phải là sai lầm, tôi nhận được lỗi sau:
$ make
ifeq ("i386", "armv7l")
/bin/sh: -c: line 0: syntax error near unexpected token `"i386",'
/bin/sh: -c: line 0: `ifeq ("i386", "armv7l")'
make: *** [test] Error 2
Vì vậy, nó đang phân giải thành hai chuỗi so với nhau, nhưng có lỗi cú pháp. Có gì sai ở đây?
Làm thế nào rõ ràng hơn nhiều nó có thể được? Tôi chỉ cố gắng kiểm tra kiến trúc và điều kiện làm các câu lệnh. Nhưng cảm ơn bạn đã trả lời. Đã chấp nhận. –
Nếu bạn thực sự chỉ muốn viết một tuyên bố if trong mỗi dòng công thức duy nhất thì tôi đồng ý rõ ràng. Tuy nhiên, phần lớn thời gian, mọi người thực sự muốn làm điều gì đó hơn, như sử dụng các cờ biên dịch khác nhau hoặc các trình biên dịch khác nhau, thêm các tệp nguồn khác nhau, v.v. Có nhiều cách thanh lịch hơn để làm những việc này hơn là thêm nhiều -báo cáo trong tất cả các công thức nấu ăn của bạn. – MadScientist
Nhân cách '==' đồng nghĩa với '=' –