你说的程序应该是采用了 dynamic loading ,实际上调用了这样一组接口 : dlopen dlclose dlsym 函数名被作为参数传递进去,交给动态链接器 ld.so 。随后 ld.so 会在已经加载的动态库中查找与函数名匹配的符号。如果查找成功就可以返回一个地址指向这个符号的地址。对于函数,这个地址就相当于是一个函数指针。 而这整个过程可以顺利进行下去,还要依赖于当前程序与动态库的 ABI