我正在将一个 DLL 从 Windows 移植到 Linux(实际上是 OS X)。我使用这篇StackOverflow 文章来进行更改。
即我已经将 Windows“bool DllMain()”移植到 Linux 方式:
__attribute__((constructor)) void dllLoad();
__attribute__((destructor)) void dllUnload();
...但两者都是 void 返回类型。如果构造函数中不满足条件,我需要能够执行与 Windows 相同的操作并返回 FALSE,以便 dlopen() 失败并且 .so 不加载。
如何让调用 dlopen() 失败?