Получение "DSO отсутствует из командной строки" с помощью пользовательской glibc - PullRequest
0 голосов
/ 28 мая 2020

Я пытаюсь связать программу с пользовательской установкой GLIB C. Я пробовал следующие варианты, но получил ту же ошибку

objs/ngx_modules.o \
-Wl,--emit-relocs -Wl,--dynamic-linker=/opt/glibc-2.23-install/lib/ld-2.23.so -ldl -Wl,-rpath-link,/opt/glibc-2.23-install/lib -lcrypt -lpcre -lz \
-Wl,-E
/usr/bin/ld: objs/src/core/ngx_shmtx.o: undefined reference to symbol 'sem_post@@GLIBC_2.2.5'
/opt/glibc-2.23-install/lib/libpthread.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

и

objs/ngx_modules.o \
-Wl,--emit-relocs -Wl,--dynamic-linker=/opt/glibc-2.23-install/lib/ld-2.23.so -ldl -L/opt/glibc-2.23-install/lib -lcrypt -lpcre -lz \
-Wl,-E
/usr/bin/ld: objs/src/core/ngx_shmtx.o: undefined reference to symbol 'sem_post@@GLIBC_2.2.5'
//lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
objs/Makefile:226: recipe for target 'objs/nginx' failed

и

objs/ngx_modules.o \
-Wl,--emit-relocs -Wl,--dynamic-linker=/opt/glibc-2.23-install/lib/ld-2.23.so -ldl -L/opt/glibc-2.23-install/lib/libpthread.so -lcrypt -lpcre -lz \
-Wl,-E
/usr/bin/ld: objs/src/core/ngx_shmtx.o: undefined reference to symbol 'sem_post@@GLIBC_2.2.5'
//lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
objs/Makefile:226: recipe for target 'objs/nginx' failed

Тогда есть альтернатива?

1 Ответ

0 голосов
/ 30 мая 2020

-Wl,--emit-relocs -Wl,--dynamic-linker=/opt/glibc-2.23-install/lib/ld-2.23.so -ldl -L/opt/glibc-2.23-install/lib/libpthread.so -lcrypt -lpcre -lz \ -Wl,-E

Неистовая активность не заменит понимания. Требуемая команда:

gcc objs/ngx_modules.o  \
  -Wl,-E -Wl,--dynamic-linker=/opt/glibc-2.23-install/lib/ld-2.23.so \
  -L/opt/glibc-2.23-install/lib \
  -lcrypt -lpcre -lz -lpthread
...