glut + dlltool

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
Аватара пользователя
Сионист
Сообщения: 1211
Зарегистрирован: 31 мар 2014, 06:18

Файл opengl32.a создаю так: файл opengl.def

Код: Выделить всё

LIBRARY opengl32.dll
EXPORTS
glClear
glFlush
glClearColor
, командная строка:

Код: Выделить всё

c:\CodeBlocks\MinGW64\bin\dlltool.exe -d C:\CodeBlocks\mingw64\lib\gl\opengl32.def -l C:\CodeBlocks\mingw64\lib\gl\opengl32.a
. All complete. Создаю glut32.a по аналогии: файл glut32.def

Код: Выделить всё

LIBRARY glut32.dll
EXPORTS
glutInitDisplayMode
, командная строка

Код: Выделить всё

c:\CodeBlocks\MinGW64\bin\dlltool.exe -d C:\CodeBlocks\mingw64\lib\gl\glut32.def -l C:\CodeBlocks\mingw64\lib\gl\glut32.a
, но
Запуск программы не возможен, так как на компьютере отсутствует glut32.dll
, копирование glut32.dll в каталог программы не помогает, всё равно вылазит ошибка, но уже 0xc000007b. А если:

Код: Выделить всё

LIBRARY glut32.dll
EXPORT
glutInitDisplayMode
, то
D:\Projects\cpp\simplegl\simplegl\simplegl.cpp|19|undefined reference to `glutInitDisplayMode'|
. Что я делаю не так?
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

1. А почему ты в одному случае пишешь EXPORTS, а в другом EXPORT?

2. Я никогда не работал с glut, но с ошибкой 0xc000007b MinGW сталкивался. Она вываливался, например, в рантайме, если из MinGW бинарника я пытался делать вызов функции из либки, которая была собрана студией. Дело в том, что у студии и у MinGW несовместимый ABI. Вызываться такой код будет только в том случае, если функция extern "C", так как С-шный ABI у всех современных компиляторов совместим в пределах одной платформы. Какое объявление у функции glutInitDisplayMode?
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Ответить