2016-07-13 13 views
2

Ich habe einen seltsamen Fehler beim Verschieben unserer Projekte von VS2012 Update 4 nach VS2015 Update 3. In der Lösung kompilieren die Hälfte der Projekte mit VC++ (MSVC 14.0) und die Hälfte der Projekte kompilieren mit Intel C++ 13.0.VC++ 2015 nicht verknüpfen, aber VC++ 2012 tat

Alles kompiliert korrekt.

Das Problem tritt auf, wenn es Zeit ist zu verknüpfen. Ich bekomme Fehler wie diese, die in den std Dateien zu sein scheint ...

Error LNK2019 

unresolved external symbol 

"public: virtual void __cdecl std::basic_istream<wchar_t,struct 
std::char_traits<wchar_t> >::_Add_vtordisp1(void)" 
([email protected][email protected][email protected][email protected]@@@[email protected]@UEAAXXZ) 

referenced in function 

"[thunk]:public: virtual void __cdecl std::basic_istream<wchar_t,struct 
std::char_traits<wchar_t> >::_Add_vtordisp1`vtordisp{4294967292,128}' 
(void)" ([email protected][email protected][email protected][email protected]@@@[email protected]@[email protected][email protected]) 

ich weder den Fehler mit einer Spitze Lösung, die Sie wiedergeben kann, ein Stück Code, noch geben, wo der Fehler tritt auf, weil es scheint zu sein, in std.

Wenn ich in der Datei istream schaue, finde ich etwas wie #pragma vtordisp(push,2) //compiler bug workaroung, aber ich kann nicht herausfinden, welcher Fehler es ist oder wie es zu beheben ist.

Jeder Anhaltspunkt/Tipp wäre zu schätzen.

Vielen Dank!

+0

Also nimm das Projekt. Beseitige die Hälfte davon. Tritt das Problem immer noch auf? Ja? Wiederholen Sie dies, bis Sie etwas absolut Minimales haben. Nein? Beseitige die andere Hälfte. Diese wilk bemühen, aber sollten Sie mindestens * irgendwo * towarsa a [mcve] – Yakk

+0

@Yakk Ich wollte nur wissen, ob jemand das gleiche Problem konfrontiert. Natürlich muss ich die Dichotomie-Methode verwenden ... –

+2

Verknüpfen Sie Module, die mit verschiedenen Versionen von MSVC kompiliert wurden, zufällig? – dxiv

Antwort

0

Installieren Sie das Windows 10-SDK, und richten Sie Ihre Lösung dann darauf aus, dieses neueste SDK zu verwenden. Stellen Sie außerdem sicher, dass der Code ordnungsgemäß in VS 2015 migriert wurde und die Abhängigkeiten, die Sie mit Ihrem Projekt verwenden, von VS 2015 sein sollten. Andernfalls würde es einen weiteren Fehler geben.