2010-12-25 4 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

수정 사항이 아니지만 오래 되었기 때문에 glut을 사용하지 마십시오. – 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 파일이 보입니다. 당신의 도움을 주셔서 감사합니다. 나쁜 소식 : 나에게 1000 번 이상의 변환 오류가 발생했습니다 (D 문자열을'char []'로 변환하는 것에 관한 것). OpenGL을 D와 함께 사용하는 방법을 다시 생각해 볼 필요가 있다고 생각합니다. – Max