OS X 10.7 (Lion)、XCode 4.6.3、libstdc++ を C++ 標準ライブラリとして使用しています。
メインプロジェクトに次のコードがあります。
共有.cpp:
extern "C" int sharedFun()
{
return 5;
}
そして、これは私のサイドプロジェクトで、メインのものを動的にロードする必要があります:
ローダー.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 は「symbol not found」を返します。何か案は?
ありがとう。