2011-01-18 19 views
29

Khi tôi đang soạn thảo dự án Qt của tôi dành cho Windows tôi nhận được những 2 cảnh báo:cảnh báo trình biên dịch Qt: trọng lệnh cho mục tiêu/phớt lờ lệnh cũ cho mục tiêu

Makefile.Debug:109: warning: overriding commands for target `debug/moc_mainwindow.cpp' 
Makefile.Debug:106: warning: ignoring old commands for target `debug/moc_mainwindow.cpp' 

Tôi cho rằng họ chỉ ra một số vấn đề với cấu hình dự án của tôi vấn đề là gì và làm cách nào để khắc phục sự cố?

+0

Chỉ cần làm một công trình sạch sẽ và những thứ này sẽ biến mất. – ismail

Trả lời

68

Tôi đã nhận được cùng một lỗi một lần, có thể nguồn của vấn đề của bạn là khác nhau nhưng tôi sẽ viết anyways. Trong tệp * .pro của tôi, nó giống như:

cpp và tệp tiêu đề lặp lại chính nó. Tôi xóa các lặp đi lặp lại bao gồm và vấn đề được giải quyết cho tôi.

+5

bạn đã cứu tôi khỏi rất nhiều thất vọng – nkint

+2

Tôi cũng vậy điều này cũng đã xảy ra trên SUBDIRS. – reggie

+0

Lưu ý rằng lặp lại có thể xảy ra khi hai tệp có cùng tên và được đề cập trong các tệp '.pri' khác nhau được bao gồm. – Troyseph

9

make clean và sau đó make sẽ giải quyết vấn đề này. :) (Hoặc nhấp chuột phải vào dự án trong Qt Creator -> Clean và sau đó nhấp chuột phải vào dự án trong Qt Creator -> Rebuild).

Nếu nó không hoạt động, xóa thủ công makefile và xây dựng lại sau đó dự án.

+4

Nếu điều này không giải quyết được vấn đề, thì có khả năng bạn có tệp mainwindow.h được liệt kê nhiều lần trong biến HEADERS của bạn trong tệp .pro. –

+0

Cảm ơn, nó bật ra tôi thực sự đã có nó được liệt kê hai lần. Làm cách nào để đánh dấu câu trả lời của bạn là câu trả lời đúng? Hoặc tôi nên chỉ đánh dấu phụ huynh? – sashoalm

2

Tôi cũng gặp vấn đề tương tự - Makefile bao gồm cùng một tệp .cpp và .h hai lần và đã cho tôi các lỗi Multiple definition of <class/function> first defined here.

Tắt tệp .cpp và .h được đề cập đã được thêm làm qwtfunctions, ngoài việc ở trong tệp * .pro. Vì vậy, kiểm tra qwtfunctions là tốt nếu không có câu trả lời ở trên làm việc cho bạn.

2

Trong nhiều trường hợp lỗi này liên quan đến QMake chỉ cần đặt tất cả các tệp đối tượng vào một thư mục phẳng trong thư mục xây dựng, sau đó gây ra vấn đề nếu hai tệp nguồn có cùng tên, mặc dù chúng có thể khác nhau thư mục. Chẳng hạn như

SOURCES += foo.cpp 
SOURCES += bar.cpp 
SOURCES += bla/foo.cpp 
SOURCES += bla/bar.cpp 

Trong trường hợp này QMake sẽ khiếu nại về cả foo.o và bar.o.

Các giải pháp cho vấn đề này là thêm

CONFIG += object_parallel_to_source 

vào file .pro đó sẽ gây ra việc xây dựng thư mục để phản ánh hệ thống phân cấp thư mục của cây nguồn. Không chắc chắn tại sao đây không phải là mặc định.

Sự cố và giải pháp trước đây đã được chỉ ra here nhưng không phải trong ngữ cảnh của thông báo cảnh báo được thảo luận trong chuỗi này.

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