Russian Qt Forum
Ноябрь 23, 2024, 02:00 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Ошибка компоновщика  (Прочитано 11939 раз)
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« : Июль 09, 2014, 14:12 »

Здравствуйте, всем!
Прошу помочь мне разобраться с проблемой:
Я занимаюсь изучением OpenGL по Суперкниге и пишу примерчики из неё на Qt.
К проекту очередного примера мне было необходимо подтянуть несколько хэдэров и исходников из папки examples/common. Но тут столкнулся с ошибкой при компоновке
Код:
ошибка: undefined reference to `gltTransformPoint'
Сослался на свою "пряморукость" и попробовал запустить из под Qt Creator сам пример (без использования Qt) - не успех...
Понимаю, что ошибка, скорее всего, пустяковая, но в упор не вижу причины.

Предпринимал действия:
Запускал предложенный в примере файл проекта MSVC, приписывал расположение glut32 и он работал.
В папке примера выполнял qmake -project, в .pro файл прописывал glut32 - ошибка та же. Эти же действия на другом примере дали положительный результат.

Во вложении сам пример, общие файлы ко многим примерам из книги, библиотека glut с диска от книги.
« Последнее редактирование: Июль 09, 2014, 19:42 от __Heaven__ » Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Июль 09, 2014, 17:49 »

может еще библиотеку надо подключить?
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #2 : Июль 09, 2014, 18:53 »

может еще библиотеку надо подключить?
А может еще скажете какую?  Улыбающийся

2__Heaven__ Ну причем здесь cpp и h если Вы сами говорите "ошибка компоновщика". Просто тупо ищите все файлы в которых unresolved (gltTransform). Такого lib файла у Вас нет - значит надо его где-то доставать скачивать (а не пробовать компиляторы). Наберите в гугле напр "gltools library download" - вот первая ссылка, товарищ тоже ищет.
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #3 : Июль 09, 2014, 19:45 »

2__Heaven__ Ну причем здесь cpp и h если Вы сами говорите "ошибка компоновщика". Просто тупо ищите все файлы в которых unresolved (gltTransform). Такого lib файла у Вас нет - значит надо его где-то доставать скачивать (а не пробовать компиляторы). Наберите в гугле напр "gltools library download" - вот первая ссылка, товарищ тоже ищет.
Не смог сформулировать тему - переправил.

Дело в том, что такая функция определена в .c файле, который имеется в папке common. Я его тоже подтягивал в проект, но это не помогло...
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #4 : Июль 09, 2014, 20:02 »

Загрузил Ваш проект в MSVС 2012, добавил glut32.lib в проект, отключил SAFESH в линкере. Положил glut32.dll рядом с exe. Запускается, работает
Записан
Bepec
Гость
« Ответ #5 : Июль 09, 2014, 20:16 »

Морока с путями у вас скорее всего Улыбающийся
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #6 : Июль 09, 2014, 21:17 »

Загрузил Ваш проект в MSVС 2012, добавил glut32.lib в проект, отключил SAFESH в линкере. Положил glut32.dll рядом с exe. Запускается, работает

Предпринимал действия:
Запускал предложенный в примере файл проекта MSVC, приписывал расположение glut32 и он работал.

Igors, меня больше интересует, почему у меня не получается выполнить пример именно в среде Qt Creator (mingw). Это переходит в спортивный интерес, так сказать Улыбающийся.

Морока с путями у вас скорее всего Улыбающийся
Мне кажется, что нет. До этого момента я выполнил около десятка примеров с использованием glut... А здесь появились эти .c и .h... Я их перенес в папку с моим проектом.
Единственное, что меня сейчас интуитивно смущает, следующий код. В файле GLTools.h:
Код:
#include <windows.h>
#include <winnt.h>
#include <gl/gl.h>
#include <gl/gl.h>
Подключение к проекту с чистым примером QT += opengl не подходит... Возможно ли, что какая-то gl либа не подтягивается?
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #7 : Июль 09, 2014, 21:37 »

LIBS += -lglut32
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #8 : Июль 10, 2014, 06:43 »

LIBS += -lglut32
Это само собой. + -L"Путь к glut32"
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #9 : Июль 10, 2014, 13:31 »

чтобы заработало через креатор, пришлось выбросить Common\glut.h из pro и пару инклудов подправить (я по-другому расположил файлы). библиотеку я добавлял через Add Library...

выкладываю рабочий проект.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #10 : Июль 10, 2014, 15:30 »

Igors, меня больше интересует, почему у меня не получается выполнить пример именно в среде Qt Creator (mingw). Это переходит в спортивный интерес, так сказать Улыбающийся.
Вероятно потому что хедер GLTools.h не очень грамотный. Если ф-ция определена в с файле, то в хедере она должна быть объявлена как extern "C". Попробуйте измененный хедер (аттач)

Подключение к проекту с чистым примером QT += opengl не подходит... Возможно ли, что какая-то gl либа не подтягивается?
Там своя OpenGL-песня (ES, ES2), с Вашим примером это наверняка несовместимо
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #11 : Июль 10, 2014, 17:29 »

Igors, меня больше интересует, почему у меня не получается выполнить пример именно в среде Qt Creator (mingw). Это переходит в спортивный интерес, так сказать Улыбающийся.
Вероятно потому что хедер GLTools.h не очень грамотный. Если ф-ция определена в с файле, то в хедере она должна быть объявлена как extern "C". Попробуйте измененный хедер (аттач)


не помогло, к сожалению...
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #12 : Июль 10, 2014, 17:57 »

что мешает взять готовый рабочий проект который я выложил?
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #13 : Июль 10, 2014, 19:58 »

что мешает взять готовый рабочий проект который я выложил?
Очень извиняюсь!!! Не заметил Вашего сообщения.
Попытался сейчас запустить Ваш код и ничего не получил...
См. аттач
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #14 : Июль 10, 2014, 20:38 »

у меня и дебаг и релиз работает. использую Qt 5.3.0 MSVC2012 OpenGL 32bit. похоже, что твоему mingw компилятору что-то не нравится.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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