免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2161 | 回复: 7
打印 上一主题 下一主题

freebsd下可以编译的时候连接一个linux下编译出来的库么?在线等候。。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-16 10:04 |只看该作者 |倒序浏览
有个问题请问大家。

freebsd下可以编译的时候调用一个linux下编译出来的库么?

我知道freebsd可以运行的时候调用linux下的动态库。
但是不知道编译的时候嗲用linux下的库可以么?

比如
libaxx.so libbxx.a是linux编译出来的,
现在我在freebsd 下编译
g++ -o a a.cpp -laxx -lbxx

论坛徽章:
0
2 [报告]
发表于 2009-07-16 11:47 |只看该作者
原帖由 hmilymb 于 2009-7-16 10:04 发表
有个问题请问大家。

freebsd下可以编译的时候调用一个linux下编译出来的库么?

我知道freebsd可以运行的时候调用linux下的动态库。
但是不知道编译的时候嗲用linux下的库可以么?

比如
libaxx.so li ...

保证都是elf32,或者同是elf64的,应该是可以的,所以说从开源的linux port到freebsd这个过程并算太不复杂

论坛徽章:
0
3 [报告]
发表于 2009-07-16 14:23 |只看该作者
谢谢楼上。。

我觉得是不是属于交叉编译范畴了,freebsd代码中调用一个linux人家的库,看来是不可以了,除非都是都是编译成linux下运行的,然后再到freebsd模拟linux环境。。

论坛徽章:
0
4 [报告]
发表于 2009-07-16 16:12 |只看该作者
这个要分情况讨论了。
1、ARCH要相同。
2、不能使用系统调用。
3、对于.o文件,需要连接系统提供的函数,要求数据结构一致。

同样是386下, 纯粹加密解密,没有使用系统调用的话,那么生成的.o甚至.so是可以用的。
但是估计会存在难以发现的问题。

符合这些条件的就可以互用了。就像mplayer可以调用win32的DLL一样。

论坛徽章:
0
5 [报告]
发表于 2009-07-16 17:30 |只看该作者
原帖由 pagx 于 2009-7-16 16:12 发表
这个要分情况讨论了。
1、ARCH要相同。
2、不能使用系统调用。
3、对于.o文件,需要连接系统提供的函数,要求数据结构一致。

同样是386下, 纯粹加密解密,没有使用系统调用的话,那么生成的.o甚至.so是可 ...

一般来说,不直接和内核打交到的,也就是和内核无关的,这个是个前提

论坛徽章:
0
6 [报告]
发表于 2009-07-19 23:07 |只看该作者
路过 顶了。。。

论坛徽章:
0
7 [报告]
发表于 2009-07-20 08:45 |只看该作者
要么全部编译成 Linux 的二进制,用管道来交互?

论坛徽章:
0
8 [报告]
发表于 2009-07-20 10:24 |只看该作者
原帖由 langue 于 2009-7-20 08:45 发表
要么全部编译成 Linux 的二进制,用管道来交互?

格式上来说,都编译成elf的首先,他们之间的不同,仅仅是他们对库和内核的依赖不同,尤其是内核
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP