admin管理员组文章数量:1613633
本文所述基于以下两点,
- 使用CMake进行项目的构建
- Windows下使用MinGW32 g++,Linux下使用GNU g++
一、Windows
Windows的动态链接库的命名格式为lib*.dll。
使用CMake创建动态链接库时,会生成两个文件,比如
下面代码是在CMakeLists.txt中描述的依赖关系,在cmake构建过程中,会在上下文规定的路径中寻找“libcurldll.a”、“libbase64.a”,即在前后分别自动添加上“lib”和“.a”。
libcurldll.a是用在项目构建过程中添加动态库依赖的,libcurl.dll是程序运行时加载的动态库,并且需要将libcurl.dll放到可执行文件同一目录下,才能正常加载。
target_link_libraries(
MAIN
"curldll"
"base64"
)
二、Linux
Linux的动态链接库的命名格式为lib*.so。
使用CMake创建动态链接库时,只会生成一个文件,比如
生成的libbase64.so可用于运行时加载。
在CMakeLists.txt中描述的依赖关系如下图。
在cmake构建过程中,会在上下文规定的路径中寻找“libbase64.so”,即在前后分别自动添加上“lib”和“.so”。
在CMakeLists.txt中规定的链接路径如下,程序会在以下路径中查找需要加载的动态库,不可移动至其他路径。
如果在上述路径中找不到动态库,会报错如下,
版权声明:本文标题:Windows与Linux下动态链接库的区别 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1728655853a1168162.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论