Hi,

I'm seeing some strange behavior when modifying the "hello world" crates
example in the 0.7 tutorial (
http://static.rust-lang.org/doc/0.7/tutorial.html#modules-and-crates).  It
works fine as is, but when I modify it such that the "explore" function is
inside a nested module, it compiles fine but I get undefined reference
errors during the linking process.

Is this intended behavior?  Is this a bug, or am I doing something wrong?

Thanks,
Joshua

----------------------

I'm using rust 0.7, on ubuntu 12.04 (64-bit).  What follows is a set of
commands to reproduce the problem:

----------------------  Bash: ----------------------
cat > hello.rs <<EOF
extern mod world;

fn main() {
  println("hello " + world::columbus::explore());
}
EOF

cat > world.rs <<EOF
#[ link(name = "world",
        vers = "0.1")];

#[ crate_type = "lib" ];

mod columbus {
  pub fn explore() -> &str { "world" }
}
EOF

rustc world.rs
rustc -o hello -L . hello.rs

---------------------- Output compiling hello.rs: ----------------------
error: linking with `cc` failed with code 1
note: cc arguments: -L/usr/local/lib/rustc/x86_64-unknown-linux-gnu/lib
-m64 -o hello hello.o -L/usr/local/lib/rustc/x86_64-unknown-linux-gnu/lib
-lstd-6c65cf4b443341b1-0.7 -L. -lworld-15fb3a718ea23983-0.1 -lrustrt -lrt
-lpthread -L. -lrt -ldl -lm -lmorestack -lrustrt
-Wl,-rpath,$ORIGIN/../../../../../usr/local/lib/rustc/x86_64-unknown-linux-gnu/lib
-Wl,-rpath,$ORIGIN/.
-Wl,-rpath,/usr/local/lib/rustc/x86_64-unknown-linux-gnu/lib
-Wl,-rpath,/tmp/test/.
note: hello.o: In function `main::_f3d4197390d6bb2a::_0$x2e0':
hello.rc:(.text+0x54): undefined reference to
`columbus::explore::_3de4895354bdc485::_0$x2e1'
collect2: ld returned 1 exit status

error: aborting due to previous error
_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to