我正致力于构建一个通过python公开的C ++库,用于ARM处理器(Xilinx ARM7)。我的团队中的另一个人使用yocto打造了适合这个平台的编译环境。我提到这一点只是为了指出我对交叉编译环境并不熟悉。这对我来说都很新鲜。
为了准备这项工作,我一直在将这个库的构建过程从自制的系统(我们编写自己的Makefile
)转换为使用 GNU构建系统 。具体来说,我使用autoconf,automake和libtool。所有这些都在"标准"环境(在CentOS 6和CentOS 7以及Ubuntu上测试过),但我遇到了交叉编译的问题。
我目前的配置命令行:
CPPFLAGS=-I/src/afalanga/crisscross/tmp/sysroots/zc706-zynq7/usr/include/python2.7 LDFLAGS=-L/src/afalanga/crisscross/tmp/sysroots/zc706-zynq7/usr/lib LIBS=-lpython2.7 ./configure --build=x86_64-linux --host=arm-poky-linux-gnueabi
我很高兴编译代码,直到stdout上出现此错误(?stderr?):
libtool: link: warning: '/src/afalanga/crisscross/tmp/sysroots/zc706-zynq7/usr/lib/libstdc++.la' seems to be moved
libtool: link: warning: '/src/afalanga/crisscross/tmp/sysroots/zc706-zynq7/usr/lib/libstdc++.la' seems to be moved
libtool: link: warning: '/src/afalanga/crisscross/tmp/sysroots/zc706-zynq7/usr/lib/libstdc++.la' seems to be moved
/bin/grep: /usr/lib/libstdc++.la: No such file or directory
/bin/sed: can't read /usr/lib/libstdc++.la: No such file or directory
libtool: link: `/usr/lib/libstdc++.la' is not a valid libtool archive
据我所知,如何构建交叉编译环境,文件libstdc++.la
应该有字符串libdir=/usr/lib
,因为当安装在Xilinx板上时,它将位于/ usr / lib中。如果我错了,请纠正我。
我的问题是,为什么这会让人感到困惑 libtool ?另外,为什么libtool会回到/usr/lib/libstdc++.la
?真的,这个文件并不像libtool脚本那样存在。但无论如何它也不应该在那里看。