0

を参照するプログラムをコンパイルしようとしています__dyld_func_lookup

すべてが正常にコンパイルされ、インクルード ファイルが関数参照を見つけることができたことを示します。ただし、最終的なリンク時に、次のエラーが発生します。

g++ -o ../lib/macosx64/libcogmapapi.dylib -dynamiclib  ./build/CogMapApi.o ./libs/cmlabs/macosx64/AIR.a ./libs/cmlabs/macosx64/CoreLibrary.a  
Undefined symbols:
  "__dyld_func_lookup", referenced from:
      _reference in CoreLibrary.a(dlfcn_darwin.o)
      _dllopen in CoreLibrary.a(dlfcn_darwin.o)
      _dllopen in CoreLibrary.a(dlfcn_darwin.o)
      _dllopen in CoreLibrary.a(dlfcn_darwin.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status

リンカーで使用-undefined dynamic_lookupしてみましたが、正しくリンクされていますが、コードで実際に参照しているため、実行時に未定義のシンボルが取得され__dyld_func_lookupます。いくつかのdylibまたはフレームワークにリンクする必要があると思いますが、Systemやlibdl.dylibのように試したものはすべて機能していないようです。

どんな助けでも大歓迎です!

4

1 に答える 1

3

同じ状況でdylib1.0をリンクするとうまくいきました。

于 2011-09-23T21:03:28.023 に答える