LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1574|回复: 7

如何讲一个C程序打包啊

[复制链接]
发表于 2009-2-5 22:37:33 | 显示全部楼层 |阅读模式
不想把源代码给别人的
大家有主意不?
发表于 2009-2-5 23:26:27 | 显示全部楼层
把它编译出来……
回复 支持 反对

使用道具 举报

发表于 2009-2-7 20:29:08 | 显示全部楼层
编译成2进制代码,让人家调用!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-8 19:21:18 | 显示全部楼层
"编译成2进制代码,让人家调用!"
这该怎么做啊?

我编写了一个子函数
想可以编译后直接调用
回复 支持 反对

使用道具 举报

发表于 2009-2-8 19:33:40 | 显示全部楼层
你去查一下 linux下的动\静态连接库的相关知识就知道了!
回复 支持 反对

使用道具 举报

发表于 2009-2-8 23:11:43 | 显示全部楼层
编译成动态链接库。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-11 11:45:59 | 显示全部楼层
我的步骤
弄了两个C文件,一个x.c(函数文件),一个main.c
在CYGWIN下编译

>>gcc -o libx.so -fPIC -shared x.c
>>warning:-fPIC ignored for target (all code is position independent)《已经得到libx.so文件》

>>gcc -o main -L. -libx main.c
>>collect2: ld returned 1 exit status./.......

大家给看
回复 支持 反对

使用道具 举报

发表于 2009-2-11 14:12:31 | 显示全部楼层
应该是:gcc -o main -L. -lx main.c
共享库在调用时不用加lib前缀

编成静态库也可以
gcc -c x.c
ar crv libx.a x.o

gcc -o main main.c libx.a
缺点是编译出来的东西体积大一些
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表