2010-12-25 1 views
0

У меня есть простая программа openGL D, которая компилируется, но я не могу заставить ее ссылаться на libglut.a. Я попробовал несколько различных командные строки:проблема с привязкой к libglut.a в D

$ dmd life.d -lglut 
$ dmd life.d -L-lglut 
$ dmd life.d -L/usr/lib/libglut.a 
$ dmd life.d /usr/lib/libglut.a 

Все эти печати следующие ошибки:

life.o:(.data+0x10): undefined reference to `_D1c2gl4glut12__ModuleInfoZ' 
life.o:(.data+0x14): undefined reference to `_D1c2gl2gl12__ModuleInfoZ' 
life.o: In function `_Dmain': 
life.d:(.text._Dmain+0x72): undefined reference to `_D1c2gl4glut8glutInitT1c2gl4glut10pfglutInit' 
life.d:(.text._Dmain+0x87): undefined reference to `_D1c2gl4glut19glutInitDisplayModeT1c2gl4glut21pfglutInitDisplayMode' 
life.d:(.text._Dmain+0xa1): undefined reference to `_D1c2gl4glut18glutInitWindowSizeT1c2gl4glut20pfglutInitWindowSize' 
life.d:(.text._Dmain+0xc2): undefined reference to `_D1c2gl4glut16glutCreateWindowT1c2gl4glut18pfglutCreateWindow' 
life.d:(.text._Dmain+0xd7): undefined reference to `_D1c2gl4glut15glutDisplayFuncT1c2gl4glut17pfglutDisplayFunc' 
life.d:(.text._Dmain+0xe6): undefined reference to `_D1c2gl4glut12glutMainLoopT1c2gl4glut14pfglutMainLoop' 
collect2: ld returned 1 exit status 
--- errorlevel 1 

Есть ли проблема с моей командной строкой, или что-то еще?

+0

его не исправление, но ... не используйте перенасыщение, потому что оно устарело – Quonux

ответ

1

Они выглядят как искаженные символы из кода D. Вы упомянули в своем предыдущем вопросе, что вы использовали какой-то уровень совместимости - не забыли ли вы включить файлы или библиотеки из вашей сборки?

+0

Моя программа импортирует 'c.gl.glut' и' c.gl.gl'. Я добавил в команду '-I/absolute/path/to/glut.d -I/absolute/path/to/gl.d' и все еще получил те же ошибки. Это то, что ты мне говорил? – Max

+0

@Max 'dmd' способен находить импорт, но автоматически не компилирует их (по какой-либо причине). Вы должны предоставить все соответствующие файлы при запуске, как в 'dmd -L-lglut life.d /absolute/path/to/glut.d/absolute/path/to/gl.d'. –

+0

Хорошая новость: теперь он видит файлы OpenGL. Спасибо за вашу помощь. Плохая новость: он много перепутал над тысячами ошибок преобразования (что-то о преобразовании строк D в 'char []'). Мне кажется, мне нужно пересмотреть, как я буду использовать OpenGL с D. – Max

 Смежные вопросы

  • Нет связанных вопросов^_^