Using dlopen/dlsym
Andrei Alexandrescu via Digitalmars-d
digitalmars-d at puremagic.com
Mon Dec 26 16:05:39 PST 2016
Consider this code:
===========
import core.sys.posix.dlfcn;
extern(C) void fun() {}
void main()
{
fun();
void *hndl = dlopen(null, RTLD_LAZY);
if (!hndl) assert(0);
auto p = dlsym(hndl, "fun".ptr);
if (!p)
{
import core.stdc.stdio;
printf("%s\n", dlerror());
}
}
===========
It works (i.e. outputs nothing) on http://dpaste.dzfl.pl and on
Vladimir's machine.
On my Mint and Ubuntu machines it outputs:
./test: undefined symbol: fun
I'm building with no flags using dmd. What could be the problem here?
Thanks,
Adnrei
More information about the Digitalmars-d
mailing list