В настоящее время я разрабатываю собственный модуль узла для использования в Node.Js и Electron, которому для работы требуются дополнительные библиотеки DLL (и какой бы ни был эквивалент для Linux и Ma c). Я не особо занимаюсь разработкой на C ++, и я не нашел решения этого вопроса в inte rnet, поэтому мне может понадобиться ваша поддержка :)
Так что все работает хорошо, когда все работает хранятся в том же (рабочем) каталоге, но это не то, с чем вы можете работать в долгосрочной перспективе. Особенно, когда я упаковываю все в модуль, который может быть загружен с помощью NPM, модуль с его dll хранится в подпапке, например «./node_modules/native-module/build/Release/adddon.node[или dll]».
Я могу легко включить модуль с помощью require, но он больше не находит никаких dll, потому что, если я правильно понимаю поведение C ++, он просто смотрит в PATH и текущий рабочий каталог (который находится в Electron или Node.js выполняется) для dll.
Моя первая идея для обходного пути заключалась в том, чтобы просто изменить cwd на папку «Release», где находятся все библиотеки dll. Но изменение cwd становится действительно беспорядочным, когда вам нравится использовать функцию горячей перезагрузки webpack, которую я использую для целей разработки. Вы всегда должны проверять, был ли уже изменен cwd, он больше не отображает страницу правильно, и я действительно думаю, что это не способ сделать.
Итак, мой вопрос в том, какой способ исправления был бы динамически сообщать модулю узла, где хранятся библиотеки DLL? Заранее спасибо.
PS: Я использую cmake- js для процесса сборки, если это важно.