【发布时间】:2013-05-10 12:04:48
【问题描述】:
我正在尝试交叉编译一个项目和它所依赖的库,以便在嵌入式系统上使用。应用程序和依赖项都使用 automake。我能够毫无问题地编译该库。
./configure --host=powerpc-none-linux-gnuspe --prefix=/home/me/build_dir
make
make install
我使用了--prefix,所以make install 没有将输出与所有x86 库一起放入我的文件系统中。我也尝试过在没有--prefix 的情况下运行configure,而是在运行make install 之前设置DESTDIR 环境变量。他们似乎在做同样的事情。我希望能够压缩/home/me/build_dir 并将其放到嵌入式目标文件系统的根目录中。我希望--prefix 没有在我的主机某处硬编码绝对路径。
然后我尝试交叉编译使用这个库的应用程序:
./configure --host=powerpc-none-linux-gnuspe --with-sysroot=/home/me/build_dir
我遇到了两件事。配置脚本成功完成,但第一次制作失败,因为它找不到其中一个标头。它正在查看/usr/include 而不是/home/be/build_dir/usr/include。 --with-sysroot 选项不应该也修改包含目录还是我遗漏了什么?
另外,我收到了警告
libtool: link: warning: library libstdc++.la was moved
我觉得我错过了一些东西。这个警告是我可以安全忽略的还是我在某个地方搞砸了?
总结一下我的问题:
1)./configure --prefix=x和make DESTDIR=x install有区别吗?
2)更新库头的搜索路径的正确方法是什么?
3) 为什么我会收到关于 libstdc++ 的警告,我应该担心吗?
【问题讨论】:
标签: cross-compiling gnu gnu-make automake