więc używam qmake stworzyć swój program, ale jestem zawsze o konflikt między moim debugowania i zwolnij bibliotek Boost z komunikatem:Jak wykryć cel Qt Creator'S (debug/release) (Visual Studio)
libboost_system-vc120-mt-s-1_58.lib(error_code.obj):-1: error: LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in main.obj
Chciałbym uczynić to zautomatyzowanym, w taki sposób, aby wybór debugowania lub wydania z Qt Creator był wystarczający do utworzenia poprawnej wersji. Widziałem inne rozwiązania, takie jak ta here, ale to nie działa. Powodem, dla którego to nie działa można zaobserwować podczas wywoływania następujące polecenie dla obu debugowania i zwolnij:
message($$CONFIG)
który wypisze konfigurację qmake. Wyniki są następujące:
Na wydaniu:
lex Yacc wyjątków debugowania depend_includepath testcase_targets import_plugins import_qpa_plugin rtti_off incremental_off okien qt warn_on uwalnianiu link_prl przyrostowe płaskim precompile_header autogen_precompile_source debug_and_release debug_and_release_target embed_manifest_dll embed_manifest_exe C++ 11 debug statyczny RTTI no_plugin_manifest QPA win32 copy_dir_files MSVC zwolnić
do debugowania:
lex Yacc debugowania wyjątki depend_includepath testcase_targets import_plugins import_qpa_plugin rtti_off incremental_off okna qt warn_on uwolnienie link_prl przyrostowe płaskim precompile_header autogen_precompile_source debug_and_release debug_and_release_target embed_manifest_dll embed_manifest_exe C++ 11 debugowania statyczny RTTI no_plugin_manifest QPA win32 copy_dir_files MSVC
Uwaga, zarówno zawierają debugowanie i wydanie ... i zastanawiam się, dlaczego ...
Chciałbym podkreślić, że skompilowałem tę wersję Qt ze źródła. Ale kiedy to zrobiłem, nie było żadnych dziwnych rzeczy. Kiedyś następujące polecenie, aby go skompilować (configure następnie skompilować z prostego nmake):
configure -debug-and-release -opensource -platform win32-msvc2013 -opengl desktop -static -nomake examples -nomake tests
Próbowałem tępy rozwiązanie dodając komendę: debug:CONFIG-=release
w moim pliku make, ale to spowoduje, że wersja release stać debug o wielkości 30 MB zamiast 14 MB, gdy wybieram wersję od Qt Creator.
Mój plik qmake jest typowy. Poniżej znajduje się część, która może mieć cokolwiek wspólnego z problemem. Pozostałe części to tylko dodawanie plików i bibliotek oraz ścieżek:
QMAKE_CFLAGS += /MT
QT += core gui
unix:QMAKE_CXXFLAGS += -std=c++11
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = MyProg
TEMPLATE = app
Dlaczego tak się dzieje? Dlaczego moje debugowanie lub wydawanie jest debugowaniem i wydaniem? Jak mogę je rozróżnić?
Proszę zapytać, czy potrzebujesz dodatkowych informacji.
http://code.qt.io/cgit/qt/qtbase.git/tree/configure#n2401 mówi, że 'debug-and-release 'jest opcją tylko dla komputerów Mac. – Mitch
@Mitch Weird ... nigdy nie miałem problemu z kompilacją! –
Jeśli to wygląda na błąd, zgłoś go. Wygląda na to, że powinieneś przynajmniej otrzymać ostrzeżenie i to może zaoszczędzić ci sporo czasu ... ale nie wiem zbyt wiele o qmake. – Mitch