Macos 使用clang从cpp文件和静态库创建动态库

Macos 使用clang从cpp文件和静态库创建动态库,macos,shared-libraries,clang,static-libraries,Macos,Shared Libraries,Clang,Static Libraries,我有以下问题: 我有一个名为libAlgatorc.a的静态库和三个名为SortingAbsAlgorithm.cpp、SortingTestCase.cpp和SortingTestSetIterator.cpp的cpp文件 现在,我想创建一个动态库,其中包含来自cpp文件和静态库的符号。我可以在Linux(Ubuntu 12.04 x64,g++版本4.8.1)中这样做: g++ -fPIC SortingAbsAlgorithm.cpp SortingTestCase.cpp Sorting

我有以下问题:

我有一个名为
libAlgatorc.a
的静态库和三个名为
SortingAbsAlgorithm.cpp
SortingTestCase.cpp
SortingTestSetIterator.cpp
的cpp文件

现在,我想创建一个动态库,其中包含来自cpp文件和静态库的符号。我可以在Linux(Ubuntu 12.04 x64,g++版本4.8.1)中这样做:

g++ -fPIC SortingAbsAlgorithm.cpp SortingTestCase.cpp SortingTestSetIterator.cpp -shared -o libProject.so -Wl,--whole-archive -lAlgatorc -Wl,--no-whole-archive
但我不能在OSX上这么做。clang没有-Wl,--整个归档选项

我有以下铿锵版本:

$ clang --version
Apple LLVM version 7.0.0 (clang-700.0.53.3)
Target: x86_64-apple-darwin15.0.0
Thread model: posix
有什么建议吗?

来自苹果公司,大概是这样的:

clang -dynamiclib \
    SortingAbsAlgorithm.cpp SortingTestCase.cpp SortingTestSetIterator.cpp \
    -stdlib=libc++ -current_version 1.0 -compatibility_version 1.0 \
    -fvisibility=hidden -L. -lAlgatorc -o libProject.dylib
鉴于我已经指定了
-stdlib=libc++
,您可能还需要
-mmacosx版本min=10.7

所以实际上,重要的是
-dynamiclib