Importing problems

Korey Peters koreypeters at gmail.com
Wed Feb 13 09:17:51 PST 2013


Hi everyone.

I'm new to D, coming from a Java/Python background. I've been 
reading the excellent "The D Programming Language" book, and want 
to now start playing around with D.

I'm having an issue with importing. When I have the following 
file:

file ~/src/sample.d: =====================

import std.stdio;

class A{
	int a = 1;
}

class B{
	A a;
	int b = 2;
	this(A a){
		this.a = a;
	}
}

void main(){
	auto a = new A;
	auto b = new B(a);
	writeln(b.b);
	writeln(b.a.a);
}

...and then at the terminal window:

me at ubuntu:~/src$ rdmd sample.d
1
2

However, if I create a second file to import A from like so:

file ~/src/sample.d: =====================

import std.stdio;
import sample_a;


class B{
	A a;
	int b = 2;
	this(A a){
		this.a = a;
	}
}

void main(){
	auto a = new A;
	auto b = new B(a);
	writeln(b.b);
	writeln(b.a.a);
}

file ~/src/sample_a.d: =====================
class A{
	int a = 1;
}

...and at the terminal:
me at ubuntu:~/src$ rdmd sample.d
/tmp/.rdmd-1000/rdmd-sample.d-94E53075E2E84D963426A11F2B81FDED/objs/sample.o: 
In function `_Dmain':
sample.d:(.text._Dmain+0xa): undefined reference to 
`_D8sample_a1A7__ClassZ'
collect2: error: ld returned 1 exit status
--- errorlevel 1

I feel like I'm missing something fundamental (and I'm guessing 
it's because I don't have any experience in "compiled" languages. 
Can anyone help? It sucks to have everything in one file! :)

Ubuntu 12.10 64bit with the latest D packages (downloaded a few 
days ago).

I get the same problems in Win7.

Kind regards,
Korey


More information about the Digitalmars-d-learn mailing list