Unable to get Phobos working on Ubuntu x64 (Oneiric)
Jonathan M Davis
jmdavisProg at gmx.com
Fri Sep 16 13:35:38 PDT 2011
On Friday, September 16, 2011 12:47 Kiith-Sa wrote:
> I've just installed a new system - Ubuntu 11.10 beta x64 and can't get
> dmd/phobos 2.055 to work.
>
> When I try to compile file hello.d with the following content:
>
> import std.stdio;
>
> void main()
> {
> writeln("Hello World!");
> }
>
>
> I get this error:
>
> /usr/lib/gcc/x86_64-linux-
> gnu/4.6.1/../../../../lib/libphobos2.a(datetime_48b_1ec.o): In function
> `_D3std8datetime5Clock11currStdTimeFNdNeZl':
> std/datetime.d:(.text._D3std8datetime5Clock11currStdTimeFNdNeZl+0x1d):
> undefined reference to `clock_gettime'
> /usr/lib/gcc/x86_64-linux-
> gnu/4.6.1/../../../../lib/libphobos2.a(time_c0_4d1.o): In function
> `_D4core4time12TickDuration12_staticCtor7OFNeZv':
> src/core/time.d:(.text._D4core4time12TickDuration12_staticCtor7OFNeZv+0x1f)
> : undefined reference to `clock_getres'
> /usr/lib/gcc/x86_64-linux-
> gnu/4.6.1/../../../../lib/libphobos2.a(time_c0_4d1.o): In function
> `_D4core4time12TickDuration14currSystemTickFNdNeZS4core4time12TickDuration'
> : src/core/time.d:
> (.text._D4core4time12TickDuration14currSystemTickFNdNeZS4core4time12TickDur
> ation+0x1f): undefined reference to `clock_gettime'
> collect2: ld returned 1 exit status
> --- errorlevel 1
>
>
> Nothing else using Phobos compiles either.
>
> I've seen previous related threads. Tried -L-lrt, didn't work.
> I tried the .deb package for Ubuntu, the binaries shipped
> in the source archive, as well as compiling Phobos myself (removing
> DMD/Phobos every time to make sure no files persisted), but nothing helped.
>
>
> Has anyone encountered this problem? Did anyone get it to work on Ubuntu
> (especially 11.10)?
It's clearly an issue where it can't find librt, since clock_gettime is in
librt. As long as you didn't mess with dmd.conf, -L-lrt should already be
given to the compiler, but regardless, if you passed it yourself, it should
work.
Are you using a 64-bit binary of dmd or a 32-bit binary? If you're using a 32-
bit binary (or building for 32-bit with a 64-bit binary), then you're going to
need the 32-bit libraries for glibc, pthreads, and librt (I don't know what
packages those are on Ubuntu, but if you have the 32-bit libraries installed
at all, odds are that those ones are there).
- Jonathan M Davis
More information about the Digitalmars-d-learn
mailing list