Jestem nowy w programowaniu w C++ i właśnie skończyłem tworzyć prosty kalkulator. Postanowiłem podzielić się nim z przyjaciółmi i po kilku próbach zorientowałem się, jak skompilować go w trybie wydania. Jednak nawet w trybie zwolnienia nadal zależy od pliku MSVCP110D.dll. Zastanawiałem się, czy istnieje sposób, aby to naprawić?Tryb zwolnienia nadal zależy od MSVCP110D.dll (C++ MSVS)
Odpowiedz
1) MSVCP110D.dll to plik .dll środowiska wykonawczego dla wersji "Debugowanie" biblioteki MS C Runtime Library. Wygląda na to, że twój .exe prawdopodobnie nie został zbudowany poprawnie dla "wydania".
2) Oto informacja dla "Visual Studio Runtime Redistributable":
http://www.microsoft.com/en-us/download/details.aspx?id=30679
3) Tu jest więcej informacji na temat tego konkretnego problemu:
Niestety msvcp100D.dll to biblioteka debugowania i nie jest dołączona do zestawu w pakiecie Microsoft Visual C++ Redistrutable wiek. Dzieje się tak, ponieważ normalna wersja debugowania nie jest dostępna dla innych niż deweloperów. Deweloper zainstalował go domyślnie w Visual Studio.
Możesz skompilować swój projekt w "Release", więc wszystkie pliki DLL, które będziesz potrzebować, będą dostępne w pakiecie Microsoft Visual C++ Redistrutable.
W przeciwnym razie można zrobić statycznego linku wszystkich bibliotek (określić/MT uwalnianie i/MTD w konfiguracji Debug do opcji kompilatora): ale osobiście nie polecam poniewaz można umieścić w pliku wykonywalnego wiele informacyjnego (używane przez debugger), które spowolni Twoją aplikację.
rozwiązany dla mnie. Niedawno pojawił się podobny problem. Najdziwniejsze było to, że wynikowa biblioteka DLL była zależna od MSVCR100.dll (bez "D"), co było słuszne, ponieważ zmieniłem/MDd na/MD, ale także zależało od MSVCP100D.dll, co nie wydawało się właściwe z tego samego powodu. Po długim badaniu odkryłem, że zależy to od definicji preprocesora. Zmiana _DEBUG na DEBUG rozwiązała problem dla mnie. – Nahum
Zgaduję, twój problem jest z zależności od wersji debugowania biblioteki DLL &, a nie zależność od samej biblioteki dll.
Jest wysoce prawdopodobne, wykonując jedną z tych 2 rzeczy
kompilacji z
/DDEBUG
lub/D_DEBUG
LUBłączących z msvcpd.lib
Podczas kompilowania z /DDEBUG
lub /D_DEBUG
i #include
jeden ze standardowych nagłówków C++, a następnie msvcpd.lib i s ściągnął (with a #pragma(lib)
, co prowadzi do zależności od msvcpd ***. dll.
msvcp (d) *. Dll jest biblioteką dll standardowej biblioteki C++.
Jeśli zamiast tego twój problem jest uzależniony od dowolnej wersji biblioteki DLL, tj. Chcesz statycznie połączyć się z biblioteką C++, możesz skompilować swój program pod numerem _STATIC_CPPLIB
.
Przykro mi, jestem niesamowicie nowy w tym. Ale w jaki sposób chciałbym statycznie powiązać bibliotekę DLL? Kiedy go skompilowałem, zmieniłem typ kompilacji z debugowania na wersję. Następnie utworzył folder Release z zawartymi plikami .exe i .cpp. –
@ user2396111 Kliknij prawym przyciskiem myszy na rozwiązanie -> właściwości, C/C++, Preprocessor-> Dodaj _STATIC_CPPLIB do różnych istniejących definicji preprocesora. Również gdy tam jesteś, sprawdź, czy DEBUG lub _DEBUG są już zdefiniowane. – user93353
To nie jest to, także przestarzała opcja w VS2012. C/C++, Generowanie kodu, Runtime Library =/MT –
Czy korzystasz z dodatkowych bibliotek? Może masz dołączoną wersję debugowania pliku dll z wykonalnym.
- 1. C++ czy typ zmiennej zależy od kontekstu?
- 2. Decimal.GetHashCode Zależy od zera kończące
- 3. Czy javax.tools zależy od JDK?
- 4. Zależy od samego pliku make
- 5. budować z MSVS 2010 i C++ standardowy
- 6. CMake i MsVS-NuGet
- 7. Jak zainstalować pakiet Debiana Build-zależy i zależy od niego:
- 8. MSVCP110D.dll i Visual Studio 2013
- 9. Czy czysta funkcja zależy od stałej zewnętrznej?
- 10. Czy implementacja bibliotek C zależy od systemu operacyjnego?
- 11. z Objective-C i awarią kodu Swift po uruchomieniu w trybie zwolnienia, tryb debugowania grzywny
- 12. Android Tryb debugowania apk działa dobrze, ale tryb zwolnienia daje zbyt wiele ostrzeżeń
- 13. Winieta na pakiet zależy od tikz/pgf
- 14. Plugin angularjs zależy od nieznanej wtyczki JavaScript
- 15. Jak rozmiar instalacji aplikacji zależy od telefonu?
- 16. Znaczenie elementów w Rebrze zależy od konfiguracji
- 17. Java: Float Formatowanie zależy od ustawień regionalnych
- 18. łączenie warunkowe mysql zależy od kolumny
- 19. Dlaczego zachowanie array.each zależy od składni Array.new?
- 20. Czy szerokość elementu zależy od jego wysokości?
- 21. Konwersja do postaci pierwotnej zależy od kontekstu.
- 22. Jak ukryć pole zależy od warunku odoo?
- 23. Parametr obowiązkowy PowerShell zależy od innego parametru
- 24. Konwertowanie projektu MSVS 2010 na MSVS 2012 RC, ale pojawia się błąd "Standard C++ nie zapewnia skrótu dla tego typu"
- 25. W jaki sposób wydajność zależy od podstawowych wartości danych?
- 26. Czy czas kompilacji g ++ zależy od wielkości tablicy?
- 27. std :: map realizacja zależy od linux i windows
- 28. Pobierz listę bazy danych zależy od wybranego serwera
- 29. Czy przeglądarka internetowa Windows 8 10 nadal ma tryb quirksmode?
- 30. Jak utworzyć pakiet, który zależy od pakietu, który "kieruje projekty"?
Jedyne środki zewnętrzne jestem pociągnięcie są #include „stdafx.h” #include #include #include Ale byłem pod wrażeniem, że w trybie zwolnienia byłoby to usunąć wszystkie potrzeby zewnętrznych zasobów i byłoby całkowicie uruchomione w sobie. –
Nie pomagasz sobie, ani nam, nie wyjaśniając, w jaki sposób * wiesz *, że masz zależność od msvcp100d.dll. Ty ** masz ** zależność w wersji Release na msvcp110.dll, zawiera kod dla iostream. Musisz go również skopiować wraz z plikiem .exe, msvcr110.dll. Lub po prostu zbuduj z/MT w efekcie, dobrze dla prostych programów, które nie używają bibliotek DLL. –
czy próbowałeś używać Dependency Walker? – makc