Программа Freeglut компилируется, но при запуске выдает ошибку: libglut.so.3: не удается открыть общий объектный файл - PullRequest
1 голос
/ 28 мая 2011

Это моя программа:

#include </usr/local/include/GL/glut.h>

int main(int argc, char **argv) 
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
    glutInitWindowPosition(100,100);
    glutInitWindowSize(320,320);
    glutCreateWindow("Lighthouse3D- GLUT Tutorial");
}

Составлено с:

g ++ -lglut -L / usr / local / lib / -o start start.cpp; ./ начать

Показана ошибка:

. / Start: ошибка при загрузке библиотеки: libglut.so.3: не могу открыть общий объектный файл: нет такого файла или каталог

Файл присутствует.

bashprompt> locate libglut.so.3
/usr/local/lib/libglut.so.3
/usr/local/lib/libglut.so.3.9.0

Также пытался:

LD_RUN_PATH = "/ USR / местные / Библиотека /"
g ++ -lglut -LLIBDIR -o start start.cpp; ./ start без удачи

Это были сообщения, отображаемые при установке (если это помогает):

корень @ Nav: /home/Nav/freeglut-2.6.0# make install Создание установки в src
make [1]: вход в каталог /home/Nav/freeglut-2.6.0/src'<br> make[2]: Entering directory / home / Nav / freeglut-2.6.0 / src 'test -z "/ usr / local / lib" || / bin / mkdir -p "/ usr / local / lib" / bin / sh ../libtool --mode = установить / usr / bin / install -c 'libglut.la' «/usr/local/lib/libglut.la'
/ usr / bin / install -c .libs / libglut.so.3.9.0 /usr/local/lib/libglut.so.3.9.0 (кд / usr / local / lib && {ln -s -f libglut.so.3.9.0 libglut.so.3 || {гм -f libglut.so.3 && ln -s libglut.so.3.9.0 libglut.so.3; }; })
(cd / usr / local / lib && {ln -s -f libglut.so.3.9.0 libglut.so || {rm -f libglut.so && ln -s libglut.so.3.9.0 libglut.so; }; }) / usr / bin / install -c .libs / libglut.lai /usr/local/lib/libglut.la
/ usr / bin / install -c .libs / libglut.a /usr/local/lib/libglut.a chmod 644 /usr/local/lib/libglut.a ranlib /usr/local/lib/libglut.a
PATH = "$ PATH: / sbin" ldconfig -n / USR / местные / Библиотека
-------------------------------------------------- -------------------- Библиотеки были установлены в:
/ usr / local / lib Если вы когда-нибудь случитесь хотеть связать с установленным библиотеки в данном каталоге, LIBDIR, вы должны либо использовать libtool, и укажите полный путь к или используйте переменную окружения -LLIBDIR' flag during linking and do at least one of the following:<br> - add LIBDIR to the LD_LIBRARY_PATH ' во время исполнения
- добавьте LIBDIR к флагу компоновщика LD_RUN_PATH' environment variable during linking<br> - use the -Wl, - rpath -Wl, LIBDIR '
- попросите вашего системного администратора добавить LIBDIR в `/etc/ld.so.conf'
Смотрите любую документацию по операционной системе об общих библиотеках для более информация, такая как ld (1) и ld.so (8) страницы справочника.

1 Ответ

3 голосов
/ 28 мая 2011

Ваша LD_RUN_PATH попытка была очень близкой, но она должна быть LD_LIBRARY_PATH:

export LD_LIBRARY_PATH=/usr/local/lib
./start

Этот совет от установщика также удобен:

попросите вашего системного администратора добавить LIBDIR в `/etc/ld.so.conf'

Если бы вы сделали это, вам бы не пришлось делать вещь LD_LIBRARY_PATH.

...