Czy jest to złą praktyką używanie wersji Release biblioteki innej firmy w pliku binarnym debugowania?Mieszanie biblioteki debugowania i wydania/binarnej - zła praktyka?
Używam biblioteki innej firmy i skompilowałem bibliotekę release .lib. Mój exe pracuje w trybie debugowania. Potem dostałem:
error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in test1.obj
Po pewnym googling odkryłem, że to dlatego, że staram się mieszać zwolnienie z debugowania, a ja muszę prawdopodobnie skompilować bibliotekę w trybie debugowania lub inaczej radzić z makra _ITERATOR_DEBUG_LEVEL. Ale jestem ciekawy, czy to jest polecany sposób i dlaczego. Wydaje mi się kłopotliwe, że muszę skompilować i zachować zapis zarówno plików binarnych do wydania, jak i debugowania dla każdej biblioteki trzeciej strony, z której zamierzam korzystać, co niedługo nastąpi, nie mając zamiaru debugować tego kodu.
Nie możesz skontaktować się z tą stroną trzecią, aby uzyskać wersję debugowania lub samodzielnie zbudować wersję debugowania? –
To więcej niż zła praktyka: prawie gwarantuje się, że program się zawiesza lub wykonuje Złe rzeczy. Przed VS2010 można mimo to połączyć, aby wykryć dziwne błędy w czasie wykonywania. Teraz przynajmniej ci się nie uda. –
@JesseGood Tak Mam kod źródłowy i właśnie skompilowałem wersję debugowania. Problem rozwiązany. Właśnie zastanawiałem się, czy mogę uciec z kompilacją i śledzeniem jednego trybu. Najwyraźniej nie! –