Я пытаюсь построить пакет из исходного кода на машине Linux без Судо, но привилегия линкер не может найти нужную библиотеку:Не удается сделать библиотеки л.д. находят
л.д.: не может найти -lstdC++
Я нашел некоторые решения об этом, которые включают в себя переустановку библиотеки, но я не могу следовать без sudo.
libstdc++.so.6
присутствует в /usr/lib
и /usr/lib64
и команде ld -lstdc++ --verbose
выходах:
......
attempt to open /usr/lib64/libstdc++.so failed
attempt to open /usr/lib64/libstdc++.a failed
attempt to open /usr/local/lib/libstdc++.so failed
attempt to open /usr/local/lib/libstdc++.a failed
attempt to open /lib/libstdc++.so failed
attempt to open /lib/libstdc++.a failed
attempt to open /usr/lib/libstdc++.so failed
attempt to open /usr/lib/libstdc++.a failed
ld: cannot find -lstdc++
Так я сделал символическую ссылку:
ln -s /usr/lib/libstdc++.so.6 ~/.local/lib/libstdc++.so
А затем добавьте путь к library_path:
export LIBRARY_PATH='/home/xxx/.local/lib'
Но компиляция просто печатает тот же результат (он не искал библиотеки в добавленном пути). Я также пробовал их перед компиляцией без успеха:
export LD_FLAGS='-L/home/xxx/.local/lib'
export LIBS='-lstdc++'
export LD_LIBRARY_PATH='$LD_LIBRARY_PATH:/home/xxx/.local/lib'
Что я делаю неправильно? Или что я неправильно понимаю здесь?
Исправьте конфигурацию и среду разработки Linux-машины, вместо того чтобы пытаться взломать ее. Если у вас нет привилегий sudo, это просто означает, что на этой машине не может быть разумной среды разработки. Найдите другую машину, которая настроена правильно, для разработки. –
Возможно, попросите вашего sysadmin запустить 'ldconfig'. Но Сэм Варшавчик прав. –