Что делать, если программа вызывает ошибку "KMP_DUPLICATE_LIB_OK"

В мире компьютеров существует много программ и “железа”, которые периодически конфликтуют, что приводит к фатальным ошибкам. Я, как любой пользователь пытаюсь найти решение подобных проблем через поисковые системы, но, если решений в сети нет и ошибка, с которой я столкнулся - нова, либо вообще уникальна, приходиться самому искать способы и меры предотвращения таких конфликтов. Поскольку я достаточно опытный пользователь, то в моих компьютерах подобные случаи очень редки, но они все же случаются. Вот вчера столкнулся одной подобной проблемой. Прямого решения не было, но была методика, позволяющая обойти аналогичные проблемы в совершенно других программах, и в моем случае это решение мне помогло. Хочется сразу отметить, что данный прием не рекомендуется как постоянное решение, но он позволяет временно обойти проблему в случае аналогичных ошибок. Итак.


Проблема:

Я работаю звукорежиссером и аранжировщиком, использую различные программы для записи, обработки и сведения звука. Основная программа, которой я пользуюсь, так называемая хост программа – это Steinberg Cubase. Притом я пользуюсь ей давно, у меня есть лицензия на несколько версий, в том числе и на последние 11-ю версию, но чаще всего при доработке старых проектов, да и по привычке использую версию 5.5.3 (х64), которая на мой взгляд наиболее эргономична, менее ресурсоемка и надежна. И вот вчера решил слегка переделать одну из старых песен, открыл проект, кое-что изменил, хотел на мастер секции установить серию новых плагинов для финальной обработки, и тут хост программа выкинула консоль с ошибкой и сразу закрылась, да так быстро, что я даже не успел прочитать текст. Повторил последовательность действий: даже после полной перезагрузки системы, внесения некоторых корректировок в пути, где лежат библиотеки плагинов, после очистки системы, проверки дисков и прочих мер, который обычно в подобных случаях помогают, результат не изменился. Cubase молниеносно падал, и настолько быстро, что я даже не успевал делать скриншот. Тогда я запустил специальную программу, которая записывает происходящее на экране и сохраняет как видеофайл. Только после этого я смог на стопкадре увидеть черное окно консоли, где было предупреждение следующего содержания.


Решение:

Поиски в сети ничего не дали относительно того плагина, который вызывал сбой, и относительно самого Cubase. А отказаться от этого очень важного в мастер цепочке плагина я не хотел. Ясно, что он конфликтовал с одним из плагинов обработки, или виртуальных синтезаторов, которые были открыты в проекте до него. Но их там десятки, и методом научного тыка, то есть поочередным отключением плагинов искать виновника не хотелось, мне бы пришлось раз 50 перезапустить проект и по одному отключать плагины. Конечно, можно было уменьшить количество итераций, методом исключения, временно изолируя половину потенциальных виновников, - опытные пользователи и программисты знают эту методику, но в моем случае плагинов слишком много и они разбросаны по множеству дисков, что делает метод исключения менее эффективным.



Прочитав текст в консоли я догадался, а дальше, в сети нашел подтверждение своим догадкам, что некие библиотеки, практически являясь аналогичными, в целях экономии места в памяти не дублируются (не запускаются) операционной системой. Однако в разных плагинах эти библиотеки имеют небольшие отличия, и их названия немного отличаются. Например, в моем случае libiomp5ui.dll и libiomp5md.dll. По сути, с точки зрения хост программы это одна и та же библиотека, однако сами плагины с этим не согласны, и не получив доступ к своим версиям библиотек вызывают ошибку. Собственно, само решение уже было сформулировано в консоли, но для пущей уверенности погуглил, понял, что подобные ошибки характерны и для совершенно других программ, например, работающих в среде Piton. Более того, это характерно не только для компьютеров, работающий с ОС Windows, и в никсоидах подобные проблемы встречаются. В таком случае рекомендуется в список переменных среды операционной системы или текущего пользователя (переменные окружения - environment variable) внести новый параметр “KMP_DUPLICATE_LIB_OK” (Разрешить дублирование библиотек KMP) и установить его значение “TRUE” (ИСТИНА).


Теперь покажу в пошаговом режиме, как внести необходимые изменения в переменные среды.

Первый метод.

1.    Чтобы открыть окно «Переменные среды», можно через поиск зайти в «Панель управления», найти раздел «Система», там искать «Дополнительные параметры системы» и наконец в открывшемся окне нажать на кнопку «Переменные среды». Но мы пойдем другим путем. Нажмем комбинацию клавиш Win + R и запустим окно ввода команд. Введем команду (без кавычек!) «rundll32.exe sysdm.cpl,EditEnvironmentVariables» и сразу попадем в нужную нам оснастку.



2.    Нажимаем на кнопку «Создать» под верхним полем.




3.    Вводим в поле «Имя переменной» значение «KMP_DUPLICATE_LIB_OK», а в поле «Значение» вводим «TRUE». Нажимаем «ОК».



4.    Должно получится так.



Вот и все! Нажимаем "Ок", закрываем все окна и пользуемся нашими капризными программами, которые теперь не жалуются на невозможность запуска дубликатов библиотек.


Второй метод.


1.    Используем непосредственное «вторжение» в святая святых, в реестр. Для чего набираем комбинацию клавиш Win + R, вводим команду «regedit». Переходим в куст «Компьютер\HKEY_CURRENT_USER\Environment»



2.    Кликаем правой кнопкой мыши в свободном месте и создаем новый строковый параметр.



3.    Переименовываем созданный параметр в «KMP_DUPLICATE_LIB_OK».

4.    Дважды кликнув по параметру открываем окно «Изменения строкового параметра», где в поле «Значение» пишем «TRUE». Нажимаем «ОК», закрываем редактор реестра и пользуемся компьютером.


Еще пару методов для особо ленивых. 

Можно используя готовый рег файл внести изменения непосредственно в реестр, можно также это делать через командную строку. Я подготовил несколько версий рег и командных файлов, результат действия которых совершенно идентичен, поэтому используйте только один тип файлов. Файлы, которые называются «true» создают переменную «KMP_DUPLICATE_LIB_OK» и присваивают ей значение «TRUE», что означает, режим дублирования библиотек OMP включен, «false» отключает данный режим, а «del» вовсе удаляет соответствующий параметр из реестра. Таким образом, мы можем оперативно включать или отключать данный параметр по мере необходимости. Все эти файлы в архиве, который прикреплен к статье. 

Скачать файл: reg-cmd.zip [2,38 Kb] (cкачиваний: 1)



Источник: Онлайн журнал "Он и Она"

Автор: Eddy

Если материал Вам понравился, поделитесь, пожалуйста!


Похожее

Добавить комментарий

Оставить комментарий

HTML5