gcc编译多重依赖动态库, 这样怎么会出问题

秀小川 2015-05-21 12:01:21
现在有一个外部设备的驱动为MWIC.so, 我自己写一个动态库名字是libDll.so 其中调用了这个动态库.
使用的是如下编译方式
gcc -fpic -shared -o libDll.so DLL.c -L. -MWIC.so


然后有一个测试程序调用这个libDll.so,
采用如下的编译方式会提示无法识别的命令行选项"-MWIC"
gcc -o test.o test.c -libDll.so -MWIC.so

如果去掉后面两个动态库的"-" 会提示MWIC.so: could not read symbols: File in wrong format

如果采用下面这种编译方式, 就会有一堆未定义

gcc -o test.o test.c  libDll.so

...全文
440 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhxianbin 2015-05-21
  • 打赏
  • 举报
回复
引用 3 楼 K_Lord 的回复:
[quote=引用 1 楼 zhxianbin 的回复:] 为什么 不按 gcc 的规则做
能帮我指出哪错了吗?[/quote] gcc -o test.o test.c -lDll.so -lMWIC.so so 的文件名要求 libDll.so libMWIC.so ,可以是软链接
帅得不敢出门 2015-05-21
  • 打赏
  • 举报
回复
比如你有 libMWIC.so 就用-l-MWIC 如果没有,就做个libMWIC.so软链接向MWIC.so
秀小川 2015-05-21
  • 打赏
  • 举报
回复
引用 1 楼 zhxianbin 的回复:
为什么 不按 gcc 的规则做
能帮我指出哪错了吗?
秀小川 2015-05-21
  • 打赏
  • 举报
回复
gcc的规则?我就是按照网上的方法再做. 刚开始接触GCC
zhxianbin 2015-05-21
  • 打赏
  • 举报
回复
为什么 不按 gcc 的规则做

23,217

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧