我正在构建一个编译器和一个虚拟机来执行我的字节码。该语言允许绑定外部C函数,这些函数可以在某些外部共享对象中定义,也可以在主编译器/ VM二进制文件(一些基本语言内置函数)中定义。
我知道我可以使用dlopen(NULL,...)动态绑定主可执行文件中的符号,但是在我对二进制文件运行strip
之后不能。那么我有以下问题:
答案 0 :(得分:6)
使用strip -d
代替仅删除调试符号。
dlopen(3)
手册页说:
CONFORMING TO POSIX.1-2001 describes dlclose(), dlerror(), dlopen(), and dlsym().
因此,在* nix上非常便携。
Windows使用LoadLibrary()
和GetProcAddress()
代替。
没有