我使用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返回“找不到符号”。 有什么想法吗?
感谢。