移植boa服务器,编译出问题,求解
-
- 帖子: 5
- 注册时间: 2014-03-10 18:36
- 系统: windows 7
移植boa服务器,编译出问题,求解
为嵌入式系统移植boa服务器,交叉编译,结果make过程中提示库无法识别,如下图,file了该库,格式是64位的,但是其他的库也有64位的 就可以设别啊 不知到哪的问题,请大虾们指教!!
- astolia
- 论坛版主
- 帖子: 6703
- 注册时间: 2008-09-18 13:11
Re: 移植boa服务器,编译出问题,求解
64位的x86指令集的.o文件和32位的arm指令集的.o文件是不可能放在一起用的
解决方法就是把那些x86_64的.o文件对应的源代码用arm-linux-gcc去编译,而不是你系统上的gcc
同样不能识别。之所以只说y.tab.o的问题是因为它是文件参数中的第一个,第一个就错了,后面那些alias.o编译器看都没去看runingforwhat 写了:但是其他的库也有64位的 就可以设别啊
解决方法就是把那些x86_64的.o文件对应的源代码用arm-linux-gcc去编译,而不是你系统上的gcc
-
- 帖子: 5
- 注册时间: 2014-03-10 18:36
- 系统: windows 7
Re: 移植boa服务器,编译出问题,求解
我就是用的arm-linux-gcc编译的,然后就报错了。是不是只能用gcc编译,不能用arm-linux-gcc.如果要移植到板子上去,需要下专门针对arm的boa包。astolia 写了:64位的x86指令集的.o文件和32位的arm指令集的.o文件是不可能放在一起用的
同样不能识别。之所以只说y.tab.o的问题是因为它是文件参数中的第一个,第一个就错了,后面那些alias.o编译器看都没去看runingforwhat 写了:但是其他的库也有64位的 就可以设别啊
解决方法就是把那些x86_64的.o文件对应的源代码用arm-linux-gcc去编译,而不是你系统上的gcc
另外,话说我在官网上下的是包是“boa-0.94.13.tar.gz”,没有看到特别注明是哪个架构的啊!
我有点菜,其中原理有些糊涂,希望大神给我解释下,谢谢!!
-
- 帖子: 5
- 注册时间: 2014-03-10 18:36
- 系统: windows 7
Re: 移植boa服务器,编译出问题,求解
另外,确实y.tab.o和boa.o是放在一起的呃astolia 写了:64位的x86指令集的.o文件和32位的arm指令集的.o文件是不可能放在一起用的
- astolia
- 论坛版主
- 帖子: 6703
- 注册时间: 2008-09-18 13:11
Re: 移植boa服务器,编译出问题,求解
你没看懂我的意思,我是说你在编译那些.o文件时用的是x86_64的gcc,报错是在那些.o文件已经被编译出来之后的链接步骤。runingforwhat 写了:我就是用的arm-linux-gcc编译的,然后就报错了。
这个源码包可以满足不同架构,只需要用支持不同架构的编译器套件,并进行正确的配置是不是只能用gcc编译,不能用arm-linux-gcc.如果要移植到板子上去,需要下专门针对arm的boa包。另外,话说我在官网上下的是包是“boa-0.94.13.tar.gz”,没有看到特别注明是哪个架构的啊!
我所说的是放在一起用,是指把这些.o文件通过链接生成可执行文件,而不是它们放在同一个目录中runingforwhat 写了:另外,确实y.tab.o和boa.o是放在一起的呃astolia 写了:64位的x86指令集的.o文件和32位的arm指令集的.o文件是不可能放在一起用的
不知道你是怎么配置让它用arm-linux-gcc编译的,肯定是你没有做对。
-
- 帖子: 5
- 注册时间: 2014-03-10 18:36
- 系统: windows 7
Re: 移植boa服务器,编译出问题,求解
恩,你是对的。我刚才仔细看了下Makefile,才知道我在make前忘记make clean了,导致我之前为了在pc上装boa生成的y.tao.o这些文件没删掉,有用来编译板子上的boa,是这个地方出错了。astolia 写了:你没看懂我的意思,我是说你在编译那些.o文件时用的是x86_64的gcc,报错是在那些.o文件已经被编译出来之后的链接步骤。runingforwhat 写了:我就是用的arm-linux-gcc编译的,然后就报错了。
这个源码包可以满足不同架构,只需要用支持不同架构的编译器套件,并进行正确的配置是不是只能用gcc编译,不能用arm-linux-gcc.如果要移植到板子上去,需要下专门针对arm的boa包。另外,话说我在官网上下的是包是“boa-0.94.13.tar.gz”,没有看到特别注明是哪个架构的啊!
我所说的是放在一起用,是指把这些.o文件通过链接生成可执行文件,而不是它们放在同一个目录中runingforwhat 写了:另外,确实y.tab.o和boa.o是放在一起的呃astolia 写了:64位的x86指令集的.o文件和32位的arm指令集的.o文件是不可能放在一起用的
不知道你是怎么配置让它用arm-linux-gcc编译的,肯定是你没有做对。
谢谢你啊,是我大意了!!
