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

Aperta
#96 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
25/100
Tipo di issue
Bug
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
aws, cpp, linux

Direzione di ricerca

Inizia con l’invocazione execl segnalata e i percorsi dei layer AWS Lambda sotto /opt/gpp3, quindi verifica perché il linker cerca in /usr/lib64 invece che nella directory del layer. Riproduci il comando g++48 e verifica che libc_nonshared.a venga risolto da /opt/gpp3/usr/lib64; l’issue è conclusa quando la compilazione di esempio riesce nell’ambiente Lambda.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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.

Lingua principale
C++
Stelle
465
Fork
98
Merge medio
1h 16m
PR unite (30g)
2

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di awslabs/aws-lambda-cpp

Tutte le issue di awslabs/aws-lambda-cpp

Issue simili

Altre issue su C++

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.