dlsym()返回'未找到符号'

时间:2013-11-08 15:23:40

标签: c++ xcode macos dynamic-loading dlsym

我使用OS X 10.7(Lion),XCode 4.6.3和libstdc ++作为C ++标准库。

我在我的主项目中有这个代码:

shared.cpp:

extern "C" int sharedFun()
{
    return 5;
}

在我的项目中,这需要动态加载主要项目:

loader.cpp:

#include <dlfcn.h>

int main(int argc, const char * argv[])
{
    void* mainApp = dlopen("mainApp.dylib", RTLD_LAZY);

    char* error;
    dlsym(mainApp, "sharedFun");

    if ((error = dlerror()) != nullptr)
    {
         ....
    }
}

nm输出:

nm -gU mainApp.dylib | grep sharedFun
002a3a10 - 01 0000   FUN _sharedFun
002a3a10 T _sharedFun

dlopen加载库就好了,但是dlsym返回“找不到符号”。 有什么想法吗?

感谢。

0 个答案:

没有答案