Это должно вести себя одинаково на всех платформах. Может быть, одна из сборок является сборкой Debug, а другая - нет?
Как правило, для отладки вам нужна сборка Debug и отладчик. Является ли libv8.so
разделяемой библиотекой или нет, не имеет значения, если она скомпилирована в режиме отладки. (Я отлаживаю общий доступ libv8.so
все время.)
При обращении за помощью, помимо предоставления воспроизводимого примера, было бы полезно, если бы вы указали версию V8, которую вы используете. В текущей версии строка "enter_contexts_.length" никогда не отображается в api.h, поэтому я знаю, что вы используете более старую версию, но я не знаю, какая.
Все, что сказано,дикое предположение о самой проблеме: учитывая, что вы делаете context->Enter()
, а затем получаете ошибку, потому что entered_contexts_.length() == 1
, может быть, попытаться выйти из контекста, когда вы закончите с этим?