我有以下问题:
我有一个名为libAlgatorc.a
的静态库和三个cpp文件calle SortingAbsAlgorithm.cpp
,SortingTestCase.cpp
和SortingTestSetIterator.cpp
。
现在,我想创建包含来自cpp文件和静态lib的符号的动态库。我可以在Linux(Ubuntu 12.04 x64,g ++ version 4.8.1)中这样做:
g++ -fPIC SortingAbsAlgorithm.cpp SortingTestCase.cpp SortingTestSetIterator.cpp -shared -o libProject.so -Wl,--whole-archive -lAlgatorc -Wl,--no-whole-archive
但我无法在OS X上执行此操作.clang没有-Wl, - 整个存档选项。
我有下面的clang版本:
$ clang --version
Apple LLVM version 7.0.0 (clang-700.0.53.3)
Target: x86_64-apple-darwin15.0.0
Thread model: posix
有什么建议吗?
答案 0 :(得分:2)
来自Apple的Dynamic Library Programming Topics,可能类似于:
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-version-min=10.7
。
所以真的只是-dynamiclib
这很重要。