2015-06-21 77 views
0

我將一個Qt4.8.5,mingw 3.5應用程序移植到了mingw 4.8.2,這已經在Linux gcc 4.8.2上正常工作。什麼我得到的是:Missing mocinclude.tmp

的mingw32,使[]:***沒有規則,使目標的MOC-發佈/ mocinclude.tmp「 通過 'MOC-發佈/ moc_main.cpp'

需要

Makefile中我看到:

check: first 

./moc-rel//mocinclude.tmp: 
     @echo -IC:\Qt\4.8.6\include/QtCore> ./moc-rel//mocinclude.tmp 
     @echo -IC:\Qt\4.8.6\include/QtNetwork>> ./moc-rel//mocinclude.tmp 
     @echo -IC:\Qt\4.8.6\include/QtGui>> ./moc-rel//mocinclude.tmp 
     @echo -IC:\Qt\4.8.6\include/QtXml>> ./moc-rel//mocinclude.tmp 
     @echo -IC:\Qt\4.8.6\include>> ./moc-rel//mocinclude.tmp 
     ... 

當我創建這個文件由手空的應用程序編譯罰款。我知道我的包含路徑很長,但無論如何它都應該沒問題,對吧?我是否錯過了某些東西,或者我應該只是將這個文件添加到git中來讓它到位?

感謝

回答

0

在你的makefile,你有這樣的規則:

./moc-rel//mocinclude.tmp: 
     @echo -IC:\Qt\4.8.6\include/QtCore> ./moc-rel//mocinclude.tmp 
     ... 

注意,它會建立文件./moc-rel/mocinclude.tmp,這是一樣./moc-release/mocinclude.tmp。你似乎在makefile的其他地方有一個依賴關係,但是隻有構建前者的規則。你需要解決這個差異。

+0

我明白你的觀點,並且可能的解決方法。但是我的Makefile是由Qt的qmake創建的。它看起來像一個編譯器和qt版本的bug。 –

+0

@LiborTomsik:好的,如果qmake正在創建無效的makefile,那麼這是一個需要維護人員提出的問題; SO很難成爲合適的論壇。 –