1

何らかの目的で、他の .dylib シンボルを含む .dylib を作成しようとしています

ex : libA.dylib と libB.dylib があり、libA と libB シンボルを含む libcore.dylib を作成したい

Ao と Bo を使用して libcore.dylib を作成できることを知っています。

gcc -dynamiclib -Wall -install_name libmycore.dylib -headerpad_max_install_names -o libmycore.dylib ../A/A.o ../B/B.o

nm -g libcore.dylib を使用すると、AFunctions シンボルと BFunctions シンボルを見つけることができます

libA.dylib と libB.dylib を使用して libcore.dylib をビルドできるかどうか疑問に思っていました。

gcc -dynamiclib -Wall -install_name libmycore.dylib -headerpad_max_install_names -o libmycore.dylib -L../A/ -lA -L../B/ -lB

もちろん、コンパイルエラーはありませんが、libAとlibBのシンボルはlibcoreで参照されていません.nm -g libcore.dylibとの依存関係はシンボルがありません

それを行う方法はありますか?

4

1 に答える 1

2

私はついにそうする方法を見つけました:

gcc -dynamiclib -o libmycore.dylib -Wl,-reexport_library,PATH_TO_LIB/libA.dylib -Wl,-reexport_library,PATH_TO_LIB/libB.dylib

正しい構文を見つけるのは簡単ではありませんが、ここではすべてが「説明」されています。

http://www.opensource.apple.com/source/ld64/ld64-85/unit-tests/test-cases/re-export-cases/Makefile

于 2013-01-14T17:28:40.007 に答える