Я пытаюсь добавить g++
внутрь AWS Lambda C++ custom runtime
.
Теперь g++
требует файлов .so
(общие библиотеки), а также .a
(stati c библиотеки).
Для этого я установил g ++ внутри каталога ch root (каталог gpp
) на машине Amazon Linux.
Теперь я создал еще один каталог, в котором есть каталоги bin
, usr
, lib
и lib64
(взятые из каталога ch root). Я создал zip этого каталога, загрузил его в s3 (так как он превышает 50 МБ) и создал слой Lambda, используя этот zip-каталог.
Теперь, после добавления этого layer
в функцию lambda
, Я пытаюсь запустить.
execl("/opt/usr/bin/g++48", "/opt/usr/bin/g++48", "-Wall", "/tmp/hello.cpp","-o", "/tmp/hello.o",
"-I/opt/gpp3/usr/include/", (char *) 0)
Используя указанное выше g++
, можно найти shared libraries
, а также header files
, но не удается найти библиотеку stati c.
/usr/bin/ld: cannot find /usr/lib64/libc_nonshared.a
collect2: error: ld returned 1 exit status
libc_nonshared.a
существует внутри /opt/gpp3/usr/lib64/
, но ищет в /usr/lib64/
.
Я попытался указать полный путь в команде g ++ как -L/opt/gpp3/usr/lib64/libc_nonshared.a
и -L/opt/gpp3/usr/lib64/libc_nonshared
и -L/opt/gpp3/usr/lib64/
Но ни один из них не работает. Любая помощь приветствуется.