AWS лямбда, создающая `CXXABI_1.3.9 ', не найдена при вызове нативной библиотеки - PullRequest
0 голосов
/ 04 июня 2018

Я получаю сообщение об ошибке ниже, когда загружаю нативную библиотеку в AWS lambda

/tmp/libKinesisVideoProducerJNI.so: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /tmp/libKinesisVideoProducerJNI.so): java.lang.UnsatisfiedLinkError
java.lang.UnsatisfiedLinkError: /tmp/libKinesisVideoProducerJNI.so: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /tmp/libKinesisVideoProducerJNI.so)

Я прочитал, что это связано с разницей между компиляцией и средой выполнения, вызываемая нативная библиотека называется AWS kinesis.как я могу решить это?

Ответы [ 2 ]

0 голосов
/ 12 октября 2018

Если вы недавно изменили свою среду сборки (я строил в Docker и изменил версию базового образа, чтобы лучше соответствовать среде AWS Lambda), то не забудьте сделать make clean или подобное, чтобы обеспечить получение всех файловперестроен после этого изменения.В противном случае некоторые из скомпилированных файлов из предыдущей среды будут использованы повторно, и это может привести к той же ошибке.

В худшем случае удалите папку node_modules и снова запустите npm install, если npm rebuildне сработало.

0 голосов
/ 06 июня 2018

Я решил эту проблему, создав экземпляр, аналогичный тому, который используется lambda

Публичная версия Amazon Linux AMI (имя AMI: amzn-ami-hvm-2017.03.1.20170812-x86_64-gp2

Затем мне пришлось снова скомпилировать библиотеку, используя исходный код https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp в этом экземпляре, все заработало

...