在编译C ++时,如何将.a文件创建为.so?

时间:2012-11-23 10:23:09

标签: c++ makefile

  

可能重复:
  Convert a Static Library to a Shared Library (create libsome.so from libsome.a): where’s my symbols?

在使用Cmakefile编译C ++时,如何使用.a静态库文件创建动态库.so文件?

1 个答案:

答案 0 :(得分:2)

如果您正在构建库,那么您正在使用CMake(正如我从您的问题中猜测的那样),它的定义如下:

add_library(name-of-library
    source1.cpp
    source2.cpp
)

您可以在库名称后面添加要构建的库类型。它可以是STATICSHARED。因此,如果您想构建一个共享库(.so),那么上面应该像这样转换:

add_library(name-of-library SHARED
    source1.cpp
    source2.cpp
)

希望这有帮助。