Aws Lambda: C++ custom runtime - /usr/bin/ld: cannot find /usr/lib64/libc_nonshared.a

Abierto
#96 2 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
25/100
Tipo de issue
Error
Claridad
Necesita aclaración
Estado de actividad
Estancado
Stack tecnológico
aws, cpp, linux

Línea de trabajo

Comience con la invocación de execl reportada y las rutas de las capas de AWS Lambda bajo /opt/gpp3; después, inspeccione por qué el enlazador busca en /usr/lib64 en lugar de hacerlo en el directorio de la capa. Reproduzca el comando g++48 y verifique que libc_nonshared.a se resuelva desde /opt/gpp3/usr/lib64; el issue estará terminado cuando la compilación de ejemplo se complete correctamente en el entorno de Lambda.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

I am trying to add g++ inside AWS Lambda C++ custom runtime.

Now g++ requires .so (shared libraries) files as well as .a (static libraries).

For this, I installed g++ inside chroot directory (directory gpp) on the Amazon Linux machine.

Now, I created another directory that has bin, usr, lib, and lib64 directories (taken from chroot directory). I created a zip of this directory, uploaded to s3 (as it is more than 50MB), and created a Lambda layer using this zip directory.

Now, after adding this layer in the lambda function, I am trying to run.

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)

Using the above g++ is able to find shared libraries as well as header files but it is not able to find the static library.

/usr/bin/ld: cannot find /usr/lib64/libc_nonshared.a
collect2: error: ld returned 1 exit status

libc_nonshared.a exists inside /opt/gpp3/usr/lib64/ but it is searching in /usr/lib64/.

I tried providing full path in g++ command as -L/opt/gpp3/usr/lib64/libc_nonshared.a and
-L/opt/gpp3/usr/lib64/libc_nonshared and -L/opt/gpp3/usr/lib64/

But none of them works. Any help is deeply appreciated.

Lenguaje dominante
C++
Estrellas
465
Forks
98
Merge medio
1 h 16 min
PR fusionados (30 d)
2

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de awslabs/aws-lambda-cpp

Todos los issues de awslabs/aws-lambda-cpp

Issues similares

Más issues de C++

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.