链接 静态库 和 .o 文件 生成 动态库中导出符号的问题

only_yestoday only_yestoday 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
需求是这样的:假如我现在有两个文件 main.o 和 libmylib.a
main.o中包含对用户的接口函数
libmylib.a中包含有一些底层的API,主要为main.o服务。但是其中也有一些对用户开放的接口

现在我想把两者链接成一个动态库
gcc -shared main.o -L. -lmylib -o test.so

问题出来了,nm -D test.so时候,libmylib.a中没有被main.o调用函数符号,不可见

哪位高手能指点一二呢?小弟感激不尽~~~~~
...全文

相关推荐

linux下用gcc生成静态库和动态库.doc

在实际开发中,可能还需要考虑库版本管理、符号导出等更复杂的问题,但这构成了基础的库创建和使用流程。

Oliver

链接器的工作过程.zip

引入与导出:对于共享库,链接器会处理引入和导出的符号。引入是指程序使用库中的功能,而导出则表示程序自身提供了可以供其他程序使用的功能。6.

chuyango

关于链接器的相关内容讲解

链接器是软件开发过程中的重要工具,它负责将编译器生成的多个目标文件(.o 或 .obj 文件)合并成一个可执行文件或者库。在这个过程中,链接器执行了一系列关键任务,包括符号解析、重定位和节区组合等。

ItKevin爱java

通用makefile文件,编译可执行程序,动态静态库

(-g)、优化等级控制(-O0/-O2可切换)、位置无关代码(-fPIC)等关键标志;链接选项区分别配置LDFLAGS用于可执行程序链接,LDLIBS用于指定外部依赖库,同时为动态库和静态库设定专属链接参数

xinshenghuo22

基于Ubuntu2004操作系统与ROSNoetic机器人操作系统框架_在编译前必须手动删除工作空间中的devel和build这两个文件夹以避免因路径差异导致的编译错误_然后使.zip

子目录以及各类目标文件(.o)、静态库(.a)、动态库(.so)和可执行二进制文件;devel文件夹则承载着开发阶段的符号链接结构,包含setup.bash、setup.sh、setup.zsh等环境初始化脚本

aileYYDS
评论 4
收藏 已收藏
分享
返回顶部
only_yestoday
Linux/Unix社区 23,224 成员 74,535 内容