c程序编译生成so文件

zhaojian68326952 2005-10-14 11:14:57
各位xdjm:
我有多个c文件,相互之间可以函数调用,现在我想将它们一起编译生成一个so文件,不知道怎么编译?
在windows下可以编译生成dll文件,编译生成so文件是不是一定要在linux环境下进行???在windows下可以吗?
还有就是如何编译?有什么编译工具吗?
感谢回答!
...全文
1697 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
021850524 2005-10-16
  • 打赏
  • 举报
回复
顺便再补充一下, 编译的时候, 加上-c -fPIC,产生位置无关的代码.要不然会不能正常使用.
zhang_jiang 2005-10-15
  • 打赏
  • 举报
回复
Windows下用cygwin试试.
你嫌麻烦可以写个Makefile好了.
zhaojian68326952 2005-10-15
  • 打赏
  • 举报
回复
自己顶,高手指点一下啊
Cnwanglin 2005-10-14
  • 打赏
  • 举报
回复
windows环境下的用VC

有做成Dll 生成的dll 在Debug目录下
zhaojian68326952 2005-10-14
  • 打赏
  • 举报
回复
非常感谢楼上的回答!
但是我还不是很明白,只能一个一个文件单独编译吗?不可以将所有的c文件作为一个工程来编译生成一个so动态链接库吗?
还有在windows环境下能编译吗?用什么工具?
zhang_jiang 2005-10-14
  • 打赏
  • 举报
回复
.so是Linux(Unix)下的动态链接库. 和.dll类似.

比如文件有: a.c, b.c, c.c
gcc -c a.c
gcc -c b.c
gcc -c c.c
gcc -shared libXXX.so a.o b.o c.o
要使用的话也很简单. 比如编译d.c, 使用到libXXX.so中的函数, libXXX.so地址是MYPATH
gcc d.c -o d -LMYPATH -lXXX
注意不是-llibXXX
zhaojian68326952 2005-10-14
  • 打赏
  • 举报
回复
高手路过指点一下啊
zhaojian68326952 2005-10-14
  • 打赏
  • 举报
回复
但是我现在不要生成dll啊,我只要生成so!

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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