关于C++ 静态编译的问题

采用CMakeLists的方式静态编译C++,
该怎么修改CMakeLists.txt文件,能够把执行档需要的所有库都包含到执行档中,这些库有第三方的.so和.a库。
想把所有的.so或者是.a库都打包到执行档中,这样在run的时候不会提示缺少库。
打包完成不考虑执行档的大小问题。
谢谢各位大神!!

静态编译方式下,你需要link所有的a库,而so库是动态库,它没法静态编译,你需要找到它对应的静态库a库。不然就需要带着so跟你的程序

连接.a 就是将静态库写入“执行档”,

连接.so 就是添加一个动态库的连接到“执行档”,运行的时候需要给出.so的路径。

你可以选择将所有的.so 找到对应的 .a , 这样就是静态了。

单如果你用的是.so ,那就没办法了。