Ich bin mit V8-32-Bit-Version 4.10.253 mit Visual Studio kompilierte 2015v8 :: Isolieren :: Neue null Zugriffsverletzung
Ich versuche, das Beispiel, dass Google hat an laufen: Chrome V8 - Getting Started
Aber wenn ich versuche, es zu laufen, erhalte ich:
Exception thrown at 0x00000000 in V8Test.exe: 0xC0000005: Access
violation executing location 0x00000000.
ich diese erhalten, wenn die folgenden ausgeführt wird:
Isolate* isolate = Isolate::New(create_params);
Meine Projekteinstellungen:
das Projekt im Debug zu kompilieren zu erhalten, stelle ich die Laufzeitbibliothek auf:
Multi-threaded Debug /MTd.
I umfassen die v8 Include-Verzeichnis unter zusätzlichen Verzeichnisse enthalten.
Schließlich I umfassen die folgenden Bibliotheken:
icuuc.lib icui18n.lib v8_libplatform.lib v8_external_snapshot.lib
v8_base_3.lib v8_base_2.lib v8_base_1.lib v8_base_0.lib v8_libbase.lib
winmm.lib
Wer weiß, was ich falsch mache? Danke im Voraus.
Deshalb verwende ich no_snapshot. Es ist MINUTELS langsamer beim Start, aber Sie müssen nicht mit den richtigen bin Dateien beschäftigen - die basierend auf Debug/32 vs 64bit/Version von V8/etc ändern. Einfacher warten die zusätzlichen .1s oder so (wenn ich gemessen) und nicht immer wieder mit ihnen zu tun. Verknüpfen Sie nicht external_snapshot und verknüpfen Sie stattdessen no_snapshot. – xaxxon
Schön! Danke für den Tipp, ich muss dem einen Schuss geben. – Someone13
Auch, wenn Sie nicht sind, stellen Sie sicher, dass Sie gegen die Debug-Builds entwickeln (make x64.debug) - es gibt bessere Fehlerinformationen, bevor die Dinge abstürzen. Es ist nicht großartig, aber es ist ein bisschen besser. Außerdem denke ich, dass die Stack-Spuren sogar ein bisschen besser sind. – xaxxon