2017-01-06 3 views
0

Я пытаюсь построить пакет из исходного кода на машине 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' 

Что я делаю неправильно? Или что я неправильно понимаю здесь?

+1

Исправьте конфигурацию и среду разработки Linux-машины, вместо того чтобы пытаться взломать ее. Если у вас нет привилегий sudo, это просто означает, что на этой машине не может быть разумной среды разработки. Найдите другую машину, которая настроена правильно, для разработки. –

+0

Возможно, попросите вашего sysadmin запустить 'ldconfig'. Но Сэм Варшавчик прав. –

ответ

0

Для какой архитектуры вы компилируете? 32 или 64 бит? Поскольку вы используете 64-битную систему, но связаны 32-битным вариантом, вам нужно дважды проверить.

Что говорит «ld -L/home/xxx/.local/lib --verbose -lstdC++»?

BTW: лучше спросить администратора установки, чтобы установить пакеты разработки, вы можете даже пропустить файлы заголовков и другие.