Qt projemi biraz düzenli tutmak için (Qt Creator kullanarak), bir .pro dosyası ve birden çok .pri dosyası var. Sadece son zamanlarda ben zaten ayrı .pri dosyada varolan bir sınıfla aynı adı taşıyan benim .pri dosyalardan biri için bir sınıf ekledi.Qt MOC Dosya Adı Birden çok .pri dosyası kullanarak çakışmalar
qmake tarafından oluşturulan dosya yapısı ve makefile dosyaları, ortaya çıkan dosya adı çarpışmasından habersiz görünmektedir. oluşturulan moc_ * dosyaları hepsi aynı alt dizine atılan (bağlı bırakın veya hata ayıklama ya) ve bir diğer üzerine yazarak biter.
Makefile.Release:318: warning: overriding commands for target `release/moc_file.cpp`
Ve proje bağlamak başarısız: Ben projeyi yapmaya çalıştığımda, şuna benzer birkaç uyarı olsun. İşte
ben neden bahsettiğimi basit bir örnektir.Dizin yapısı: project.pro ait
+ project_dir | + subdir1 | | - file.h | | - file.cpp | + subdir2 | | - file.h | | - file.cpp | - main.cpp | - project.pro | - subdir1.pri | - subdir2.pri
İçindekiler: subdir1.pri ait
TARGET = project
TEMPLATE = app
include(subdir1.pri)
include(subdir2.pri)
SOURCES += main.cpp
İçindekiler: subdir2.pri ait
HEADERS += subdir1/file.h
SOURCES += subdir1/file.cpp
İçindekiler:
HEADERS += subdir2/file.h
SOURCES += subdir2/file.cpp
moc_ * dosyalarını ayrı .pri dosyalarından ayrı alt dizinlere ayıran bir sistem oluşturmak için qmake'ye söyleme yolu var mı?
İlle karışıklık argümanı kabul etmiyorsanız: #include "subdir1/file.h" Nontheless, doğru görünmektedir. Benzersiz dosya isimleri buraya gitmenin tek yolu gibi görünüyor. – Stephen
Eğer moc dosyaları ve nesne dosyaları benimki takip ettiyseniz şimdi çarpışmayacağına inanıyorum .. Senin yorumunun aksine olsa :) Benimki yanlış ise beni düzeltin .. – liaK