移植boa服务器,编译出问题,求解

Web、Mail、Ftp、DNS、Proxy、VPN、Samba、LDAP 等基础网络服务
回复
runingforwhat
帖子: 5
注册时间: 2014-03-10 18:36
系统: windows 7

移植boa服务器,编译出问题,求解

#1

帖子 runingforwhat » 2014-06-22 20:42

为嵌入式系统移植boa服务器,交叉编译,结果make过程中提示库无法识别,如下图,file了该库,格式是64位的,但是其他的库也有64位的 就可以设别啊 不知到哪的问题,请大虾们指教!!
abc.png
附件 bcd.png 已经无效
附件
bcd.png
头像
astolia
论坛版主
帖子: 6703
注册时间: 2008-09-18 13:11

Re: 移植boa服务器,编译出问题,求解

#2

帖子 astolia » 2014-06-22 22:49

64位的x86指令集的.o文件和32位的arm指令集的.o文件是不可能放在一起用的
runingforwhat 写了:但是其他的库也有64位的 就可以设别啊
同样不能识别。之所以只说y.tab.o的问题是因为它是文件参数中的第一个,第一个就错了,后面那些alias.o编译器看都没去看

解决方法就是把那些x86_64的.o文件对应的源代码用arm-linux-gcc去编译,而不是你系统上的gcc
runingforwhat
帖子: 5
注册时间: 2014-03-10 18:36
系统: windows 7

Re: 移植boa服务器,编译出问题,求解

#3

帖子 runingforwhat » 2014-06-23 20:02

astolia 写了:64位的x86指令集的.o文件和32位的arm指令集的.o文件是不可能放在一起用的
runingforwhat 写了:但是其他的库也有64位的 就可以设别啊
同样不能识别。之所以只说y.tab.o的问题是因为它是文件参数中的第一个,第一个就错了,后面那些alias.o编译器看都没去看

解决方法就是把那些x86_64的.o文件对应的源代码用arm-linux-gcc去编译,而不是你系统上的gcc
我就是用的arm-linux-gcc编译的,然后就报错了。是不是只能用gcc编译,不能用arm-linux-gcc.如果要移植到板子上去,需要下专门针对arm的boa包。
另外,话说我在官网上下的是包是“boa-0.94.13.tar.gz”,没有看到特别注明是哪个架构的啊!

我有点菜,其中原理有些糊涂,希望大神给我解释下,谢谢!!
runingforwhat
帖子: 5
注册时间: 2014-03-10 18:36
系统: windows 7

Re: 移植boa服务器,编译出问题,求解

#4

帖子 runingforwhat » 2014-06-23 20:29

astolia 写了:64位的x86指令集的.o文件和32位的arm指令集的.o文件是不可能放在一起用的
另外,确实y.tab.o和boa.o是放在一起的呃
头像
astolia
论坛版主
帖子: 6703
注册时间: 2008-09-18 13:11

Re: 移植boa服务器,编译出问题,求解

#5

帖子 astolia » 2014-06-24 17:59

runingforwhat 写了:我就是用的arm-linux-gcc编译的,然后就报错了。
你没看懂我的意思,我是说你在编译那些.o文件时用的是x86_64的gcc,报错是在那些.o文件已经被编译出来之后的链接步骤。
是不是只能用gcc编译,不能用arm-linux-gcc.如果要移植到板子上去,需要下专门针对arm的boa包。另外,话说我在官网上下的是包是“boa-0.94.13.tar.gz”,没有看到特别注明是哪个架构的啊!
这个源码包可以满足不同架构,只需要用支持不同架构的编译器套件,并进行正确的配置
runingforwhat 写了:
astolia 写了:64位的x86指令集的.o文件和32位的arm指令集的.o文件是不可能放在一起用的
另外,确实y.tab.o和boa.o是放在一起的呃
我所说的是放在一起用,是指把这些.o文件通过链接生成可执行文件,而不是它们放在同一个目录中

不知道你是怎么配置让它用arm-linux-gcc编译的,肯定是你没有做对。
runingforwhat
帖子: 5
注册时间: 2014-03-10 18:36
系统: windows 7

Re: 移植boa服务器,编译出问题,求解

#6

帖子 runingforwhat » 2014-06-24 20:49

astolia 写了:
runingforwhat 写了:我就是用的arm-linux-gcc编译的,然后就报错了。
你没看懂我的意思,我是说你在编译那些.o文件时用的是x86_64的gcc,报错是在那些.o文件已经被编译出来之后的链接步骤。
是不是只能用gcc编译,不能用arm-linux-gcc.如果要移植到板子上去,需要下专门针对arm的boa包。另外,话说我在官网上下的是包是“boa-0.94.13.tar.gz”,没有看到特别注明是哪个架构的啊!
这个源码包可以满足不同架构,只需要用支持不同架构的编译器套件,并进行正确的配置
runingforwhat 写了:
astolia 写了:64位的x86指令集的.o文件和32位的arm指令集的.o文件是不可能放在一起用的
另外,确实y.tab.o和boa.o是放在一起的呃
我所说的是放在一起用,是指把这些.o文件通过链接生成可执行文件,而不是它们放在同一个目录中

不知道你是怎么配置让它用arm-linux-gcc编译的,肯定是你没有做对。
恩,你是对的。我刚才仔细看了下Makefile,才知道我在make前忘记make clean了,导致我之前为了在pc上装boa生成的y.tao.o这些文件没删掉,有用来编译板子上的boa,是这个地方出错了。
谢谢你啊,是我大意了!! :em06
回复