GLEW: я настроил его на использование статической библиотеки, но во время выполнения жалуется, что не нашел libGlew.so

Я работаю над проектом, который использует GLFW и GLEW. Я могу скомпилировать его без сообщений об ошибках, но когда я запускаю его, он предлагает это:

/home/doc/main: error while loading shared libraries: libGLEW.so.1.12: cannot open shared object file: No such file or directory

Я добавил #define GLEW_STATIC поверх основного файла, чтобы он не нашел его как общую библиотеку, не так ли? Вы хоть представляете, что это может быть? Заранее спасибо.

РЕДАКТИРОВАТЬ: в моем файле проекта Qt я добавляю это в LIBS

LIBS += -L/usr/local/lib -lglfw -lGL -lGLU -lX11 -lGLEW

person Ramon Blanquer    schedule 18.02.2015    source источник
comment
Что-то здесь не так, вы установили GLEW вручную, и его библиотеки не находятся в LD_LIBRARY_PATH или что-то в этом роде?   -  person rogerdpack    schedule 28.12.2019
comment
@rogerdpack О, чувак, это было 5 лет назад, извини, я не могу вспомнить, что я делал.   -  person Ramon Blanquer    schedule 24.04.2020


Ответы (1)


#define GLEW_STATIC никоим образом не влияет на компоновщик - на самом деле это нужно только для платформ Windows, где в динамических версиях добавлены объявления dllspec.

Если вы хотите создать статическую ссылку на GLEW, вам нужен статический файл .lib, и вы должны указать своему компоновщику ссылку на него.

Однако в случае с GLEW вы также можете напрямую интегрировать glew.c в свой проект и связать объектный файл, так что никакая библиотека вообще не понадобится.

person derhass    schedule 18.02.2015
comment
Большой! Спасибо большое теперь работает. Вы знаете, как получить .lib-версию библиотеки? Могу ли я получить его, скомпилировав исходный код GLEW? Спасибо @derhass - person Ramon Blanquer; 19.02.2015
comment
Makefile по умолчанию, который поставляется с GLEW, создает как статическую, так и динамическую версию библиотеки. - person derhass; 19.02.2015
comment
О, да, мне было жаль, как и раньше make clean я думал, что этого там не будет. Большое спасибо! - person Ramon Blanquer; 19.02.2015