cxx001 / myblog-comment

0 stars 0 forks source link

2022/09/14/c++/C++%E5%8A%A8%E6%80%81%E5%BA%93%E4%BD%BF%E7%94%A8/ #5

Open utterances-bot opened 1 year ago

utterances-bot commented 1 year ago

C++动态库使用 | Hexo

前言Windows与Linux下面的动态链接库区别1. 文件后缀不同Linux动态库的后缀是 .so 文件,而window则是 .dll 文件。

  1. 文件格式不同(a)Linux下是ELF格式...

https://cxx001.gitee.io/2022/09/14/c++/C++%E5%8A%A8%E6%80%81%E5%BA%93%E4%BD%BF%E7%94%A8/

cxx001 commented 1 year ago
exe/so/sa相互链接的问题总结: 注意链接的-static[_shared]这个静态库的位置,放最前面会被忽略,只是编译通过,这时可以把sa链接到上层exe里边。放后面要求生成的sa加-shared -fPIC选项,否则不能链接到so中! 静态库是否使用-shared -fPIC 链接命令 链接结果 动态库结果 最终结果
gcc -o libdynamic.so -shared -fPIC -L. -Istatic dynamic.o 成功 静态库内容没有被链接 失败
gcc -o libdynamic.so dynamic.o -shared -fPIC -L. -lstatic 失败 失败
gcc -o libdynamic.so -shared -fPIC -L. -lstatic_shard dynamic.o 成功 静态库内容没有被链接 失败
gcc -o libdynamic.so dynamic.o -shared -fPIC -L. -lstatic_shared 成功 静态库内容被链接 成功