2009-10-22 14 views

Trả lời

27

Làm cho GNU (và nhiều thứ khác) có hai cách chính để gán giá trị cho biến. Chúng khác nhau tùy theo nhà điều hành mà bạn sử dụng. Theo số the documentation, một dấu bằng đơn (=) sẽ làm cho việc mở rộng đệ quy đệ quy của giá trị, trong khi dấu hai chấm (:=) sẽ gây ra việc mở rộng đơn giản .

Mã được trích dẫn của bạn sử dụng := và do đó nên gây ra sự mở rộng đơn giản. Những gì bạn đang thấy là một thông báo lỗi liên quan đến việc mở rộng đệ quy. Tôi hy vọng rằng loại lỗi nếu bạn có một cái gì đó như thế này:

PATH = $(PATH):/other/dir 

thể lỗi được được gây ra bởi một dòng khác nhau trong makefile của bạn mà bạn chưa trích dẫn? Nếu bạn chắc chắn rằng việc cắt và dán của bạn là chính xác, và rằng đó là dòng này gây ra vấn đề, sẽ rất hữu ích nếu chúng ta có thể thấy toàn bộ, makefile chưa được chỉnh sửa.

+0

tôi đã cố gắng mọi cách tôi có thể nghĩ ra để thêm các thư mục mới để con đường, trong khi vẫn giữ lại những cái đã tồn tại. Không may mắn. Cuối cùng, tôi giải quyết trên hardcoding các thư mục cần thiết trong PATH. – Geo

+0

@Geo, nếu bạn không understanc và thử những gì Tim đề nghị, nó không làm cho câu trả lời của mình không chính xác và không đáng để chấp nhận. –

-5

cố gắng thay đổi $ (PATH) đến $ {PATH}

1

Một khả năng khác là sử dụng các chức năng vỏ:

PATH = $(shell printenv PATH):/other/dir

Các vấn đề liên quan