创建一个.so文件,其中所有内容都在CMake中静态链接(包括libc)

时间:2019-04-04 23:12:54

标签: c cmake cross-compiling

我想创建一个与musl libc(或其他libc)静态链接的.so共享库。这样其他人就可以在运行时动态链接到我的.so文件,而不必担心在他们的平台上有某些libc。这可能吗 ?如果是这样,我如何在CMake中实现这一目标?

1 个答案:

答案 0 :(得分:0)

您应该能够通过静态链接到共享库中的依赖库并将此类链接设为私有(即target_link_libraries(MyLib PRIVATE dependencies...))来实现这一目标。

这时,您将必须确保任何依赖库的任何部分不会暴露给共享库的使用者(包括任何标头都算作公开)。 PImpl技术可能对您有用。