Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: gcc, glew  (Прочитано 1076 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн shestakoffvs

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
gcc, glew
« : 24 Июня 2012, 10:07:00 »
Возник вопрос. Компилю библиотеку.
В линковщике, все вроде по феншую:
{
    "cmd": ["gcc", "-Wall", "-Werror","-fPIC", "-c",
    "-lgl", "-lglu","-lglut", "-lGLEW",
    "$file", "-o", "$file_base_name"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "working_dir": "${project_path:${folder}}",
    "selector": "source.c"
}
Все происходит без ошибок, а когда пытаюсь использовать функцию из библиотеки выдает ошибку:
self._handle = _dlopen(self._name, mode)
undefined symbol: __glewBindBuffer
при помощи гугла, ответа который бы смог понять не нашел, помогите, если кто понимает суть проблемы.

Пользователь решил продолжить мысль 24 Июня 2012, 12:16:43:
мимими
« Последнее редактирование: 24 Июня 2012, 12:16:43 от shestakoffvs »

Оффлайн mkarasik

  • Участник
  • *
  • Сообщений: 163
    • Просмотр профиля
Re: gcc, glew
« Ответ #1 : 24 Июня 2012, 18:20:01 »
Что значит библиотеку? Что значит когда использую? На каком коде, вообще, ругается?
Если делаешь свою собственную библиотеку, то как ее линкуешь потом в главную программу?

По большому счету такие проблеммы решаются правильными заголовками и линком библиотеки GLEW. Но у тебя хрень какая то написанна, если путь на библиотеку в линкере зачем ее динамически загружать? Ну и надеюсь запускаешь на той же машине, где и строишь.


ми-ми-ми

Оффлайн shestakoffvs

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: gcc, glew
« Ответ #2 : 24 Июня 2012, 18:57:52 »
Пишу свою библиотеку на С с набором функций, работающих с opengl.
В работе нужна библиотека GLEW (она скачана и установлена sudo apt-get install libglew1.6-dev).
В главную программу линкую ее следующим образом:
&gcc -Wall -Werror -fPIC -c -lgl -lglu -lglut -lGLEW clib.c -o, clib.o

Затем юзаю команду для создания .so
&gcc -shared clib.so clib.o

Ошибка вылетае, когда данную библиотку иницилизирую из кода на Python
clib = cdll.LoadLibrary('/home/.../clib.so')

Таким же вариантом сделанная библиотека, но только с простой функцией умножения работает отлично.

Ошибка, которая вылезает:
self._handle = _dlopen(self._name, mode)
undefined symbol: __glewBindBuffer

Еще что-то нужно уточнить, чтобы вы мне помогли?


Пользователь решил продолжить мысль 24 Июня 2012, 23:42:05:
Все!!!))) Порешал проблему. Позор мне конечно, но я ключи для линкера засунул в компилятор. Теперь все ок)))
« Последнее редактирование: 24 Июня 2012, 23:42:05 от shestakoffvs »

 

Страница сгенерирована за 0.014 секунд. Запросов: 22.