linux dlopen : 如何制作加载库管理器

linux dlopen : how to make loading lib manager

我用不同的 arch 选项编译了相同的代码(FMV 不能像函数 return sse 那样工作,我不能用 sse 改变 "default" 的东西) 我如何制作一个在加载时检查 cpu 功能并加载相应库的元库? (没有任何 dlsym 机器)?

一种实现你想要的方法是 link 对抗虚拟包装库,它在启动时检查 CPU 功能,加载匹配的共享库,然后将所有函数调用转发到他们在这个共享库中的实现图书馆。

此类虚拟库可以手动实现或通过自定义脚本生成。或者你可以使用Implib.so自动生成:

$ implib-gen.py --dlopen-callback=load_mylib mylib_avx.so

您需要实施 load_mylib(以分析 CPUID 和 dlopen 适当的实施)和 link 您的应用以及生成的文件。