我正在尝试交叉编译一个项目和一个它所依赖的库,以便在嵌入式系统上使用。应用程序和依赖项都使用 automake。我能够毫无问题地编译库。
./configure --host=powerpc-none-linux-gnuspe --prefix=/home/me/build_dir
make
make install
我使用--prefix
它make install
并没有将输出与所有 x86 库一起放在我的文件系统中。我也尝试过运行 configure 而--prefix
不是在运行之前设置DESTDIR
环境变量make install
。他们似乎在做同样的事情。我希望能够 tar/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++ 的警告,这是我应该担心的事情吗?