undefined symbol: rt_finalize
Tolga Cakiroglu
tcak at pcak.com
Thu Feb 27 22:25:58 PST 2014
>
> rt_finalize is defined in lifetime.d
> (https://github.com/D-Programming-Language/druntime/blob/master/src/rt/lifetime.d).
> Its part of the D runtime. It just forwards to rt_finalize2.
>
> I don't know why you are getting an undefined symbol, though.
> Is the signature different?
I made some changes in code and culled a big part of it. Now the
new error is:
./app: symbol lookup error: ./lib.so: undefined symbol:
_d_newarrayiT
The exact codes are below:
app.d
------------------------------------
import core.sys.posix.dlfcn;
void main(){
void *lh = dlopen("./lib.so", RTLD_LAZY);
void function() foo = cast(void function())( dlsym( lh, "foo" )
);
foo();
}
lib.d
------------------------------------
class A{}
extern(C) void foo(){
Object obj = new Object();
A objA = new A();
char[] c = new char[ 1024 ];
clear( objA );
clear( obj );
clear( c );
}
makefile
------------------------------------
all: clean lib app
lib:
dmd -c lib.d -fPIC -debug -gc -g -w -wi
gcc --shared lib.o -o lib.so
app:
dmd app.d -L-ldl -L-lrt -debug -gc -g -w -wi
clean:
rm -f lib.so
rm -f lib.o
rm -f app
More information about the Digitalmars-d-learn
mailing list