我可以构建一个包含其他.dylib符号的.dylib(在C中)吗?

时间:2013-01-08 17:07:12

标签: shared-libraries dylib dynamic-library

我正在尝试创建一个.dylib,包括其他.dylib符号

ex:我有libA.dylib和libB.dylib,我想制作包含libA和libB符号的libcore.dylib

我知道我可以使用A.o和B.o

制作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

我当然没有编译错误,但libcore中没有引用libA和libB符号 用nm -g libcore.dylib判断依赖性我没有符号

有办法吗?

1 个答案:

答案 0 :(得分: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