www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - undefined reference - Derelict2

reply "sergeiV" <_sergeiV_ example.com> writes:
After succesful building of the Derelict libraries using: 'make
-flinux.mak DC=dmd', I am unable to compile the provided example
code:
http://svn.dsource.org/projects/derelict/branches/Derelict2/doc/index.html

They look like linker problems to me.

rdmd test.d -Iinclude/Derelict2/import/

test.o:(.data+0x10): undefined reference to
`_D8derelict6openal2al12__ModuleInfoZ'
test.o:(.data+0x18): undefined reference to
`_D8derelict6opengl2gl12__ModuleInfoZ'
test.o: In function `_Dmain':
test.d:(.text._Dmain+0x3d): undefined reference to
`_D8derelict6openal2al10DerelictALC8derelict6openal2al16DerelictALLoader'
test.d:(.text._Dmain+0x61): undefined reference to
`_D8derelict6opengl2gl10DerelictGLC8derelict6opengl2gl16DerelictGLLoader'
collect2: ld returned 1 exit status
--- errorlevel 1

gdc gave an different kind of error:
include/Derelict2/import/derelict/util/compat.di:64: Error:
identifier 'c_long' is not defined

Using a makefile generated errors similar to those for (r)dmd.

dmd 2.059
derelict2 630
May 05 2012
next sibling parent reply "sergeiV" <_sergeiV_ example.com> writes:
On Saturday, 5 May 2012 at 23:42:36 UTC, sergeiV wrote:
 After succesful building of the Derelict libraries using: 'make
 -flinux.mak DC=dmd', I am unable to compile the provided example
 code:
 http://svn.dsource.org/projects/derelict/branches/Derelict2/doc/index.html

 They look like linker problems to me.

 rdmd test.d -Iinclude/Derelict2/import/

 test.o:(.data+0x10): undefined reference to
 `_D8derelict6openal2al12__ModuleInfoZ'
 test.o:(.data+0x18): undefined reference to
 `_D8derelict6opengl2gl12__ModuleInfoZ'
 test.o: In function `_Dmain':
 test.d:(.text._Dmain+0x3d): undefined reference to
 `_D8derelict6openal2al10DerelictALC8derelict6openal2al16DerelictALLoader'
 test.d:(.text._Dmain+0x61): undefined reference to
 `_D8derelict6opengl2gl10DerelictGLC8derelict6opengl2gl16DerelictGLLoader'
 collect2: ld returned 1 exit status
 --- errorlevel 1

 gdc gave an different kind of error:
 include/Derelict2/import/derelict/util/compat.di:64: Error:
 identifier 'c_long' is not defined

 Using a makefile generated errors similar to those for (r)dmd.

 dmd 2.059
 derelict2 630

Solved, missed -of: rdmd -Iinclude/Derelict2/import/ -Linclude/Derelict2/lib/libDerelictAL.a -Linclude/Derelict2/lib/libDerelictUtil.a -ofderelict_test test.d
May 05 2012
next sibling parent Jacob Carlborg <doob me.com> writes:
On 2012-05-06 03:43, sergeiV wrote:

 This is ofcourse enough:
 rdmd -Iinclude/Derelict2/import/ -oftest test.d
 (rdmd -Iinclude/Derelict2/import/ test.d FAILS)

 Could anybody explain why an output file specification is necessary?
 Or is this a bug?

I don't know, you should not need to specify the -of flag. -- /Jacob Carlborg
May 06 2012
prev sibling parent Mike Parker <aldacron gmail.com> writes:
On 5/7/2012 8:53 PM, sergeiV wrote:
 rdmd -Iinclude/Derelict2/import -L-Linclude/Derelict2/lib
 -L-lDerelictAL -L-lDerelictUtil -L-ldl test.d

Though I was under the impression that the new Derelict2 hierarchy / d interface files in Derelict2/import reduced the neccesity for command line arguments, that is a Derelict related question.

Well, it does. With all of the imports in a single directory, you don't need to specify multiple import directories. But you will always need to link with the libraries. The import directory doesn't affect that.
May 07 2012
prev sibling next sibling parent "sergeiV " <_sergeiV_ example.com> writes:
On Sunday, 6 May 2012 at 01:23:48 UTC, sergeiV wrote:
 On Saturday, 5 May 2012 at 23:42:36 UTC, sergeiV wrote:
 After succesful building of the Derelict libraries using: 'make
 -flinux.mak DC=dmd', I am unable to compile the provided 
 example
 code:
 http://svn.dsource.org/projects/derelict/branches/Derelict2/doc/index.html

 They look like linker problems to me.

 rdmd test.d -Iinclude/Derelict2/import/

 test.o:(.data+0x10): undefined reference to
 `_D8derelict6openal2al12__ModuleInfoZ'
 test.o:(.data+0x18): undefined reference to
 `_D8derelict6opengl2gl12__ModuleInfoZ'
 test.o: In function `_Dmain':
 test.d:(.text._Dmain+0x3d): undefined reference to
 `_D8derelict6openal2al10DerelictALC8derelict6openal2al16DerelictALLoader'
 test.d:(.text._Dmain+0x61): undefined reference to
 `_D8derelict6opengl2gl10DerelictGLC8derelict6opengl2gl16DerelictGLLoader'
 collect2: ld returned 1 exit status
 --- errorlevel 1

 gdc gave an different kind of error:
 include/Derelict2/import/derelict/util/compat.di:64: Error:
 identifier 'c_long' is not defined

 Using a makefile generated errors similar to those for (r)dmd.

 dmd 2.059
 derelict2 630

Solved, missed -of: rdmd -Iinclude/Derelict2/import/ -Linclude/Derelict2/lib/libDerelictAL.a -Linclude/Derelict2/lib/libDerelictUtil.a -ofderelict_test test.d

This is ofcourse enough: rdmd -Iinclude/Derelict2/import/ -oftest test.d (rdmd -Iinclude/Derelict2/import/ test.d FAILS) Could anybody explain why an output file specification is necessary? Or is this a bug?
May 05 2012
prev sibling next sibling parent "Stanislav Blinov" <stanislav.blinov gmail.com> writes:
On Sunday, 6 May 2012 at 01:23:48 UTC, sergeiV wrote:
 Solved, missed -of:
 rdmd -Iinclude/Derelict2/import/
 -Linclude/Derelict2/lib/libDerelictAL.a
 -Linclude/Derelict2/lib/libDerelictUtil.a -ofderelict_test 
 test.d

This is on Linux? Shouldn't it be something like rdmd -Iinclude/Derelict2/import -L-Linclude/Derelict2/lib -L-lDerelictAL -L-lDerelictUtil -L-ldl test.d ?
May 07 2012
prev sibling next sibling parent "sergeiV" <_sergeiV_ example.com> writes:
 rdmd -Iinclude/Derelict2/import -L-Linclude/Derelict2/lib 
 -L-lDerelictAL -L-lDerelictUtil -L-ldl test.d

Though I was under the impression that the new Derelict2 hierarchy / d interface files in Derelict2/import reduced the neccesity for command line arguments, that is a Derelict related question. Condsider this solved.
May 07 2012
prev sibling parent Trass3r <un known.com> writes:
 Though I was under the impression that the new Derelict2 hierarchy / d  
 interface files in Derelict2/import reduced the neccesity for command  
 line arguments, that is a Derelict related question.

You may try to use --chatty and compare the output.
May 07 2012