我想跨編譯一個項目和一個庫,它依賴於在嵌入式系統上使用。應用程序和依賴項都使用automake。我能夠編譯圖書館沒有太多問題。用automake交叉編譯
./configure --host=powerpc-none-linux-gnuspe --prefix=/home/me/build_dir
make
make install
我用--prefix
使make install
沒有把輸出在我的文件系統與所有的x86庫的。我也嘗試在運行配置時不使用--prefix
,而是在運行make install
之前設置DESTDIR
環境變量。他們似乎也做同樣的事情。我希望能夠編譯/home/me/build_dir
並將其放在嵌入式目標文件系統的根目錄下。我希望--prefix
沒有硬編碼我的主機上的絕對路徑。
然後我試圖穿越編譯使用這個庫的應用:
./configure --host=powerpc-none-linux-gnuspe --with-sysroot=/home/me/build_dir
我遇到了兩件事情。配置腳本已成功完成,但第一次make失敗,因爲找不到其中一個標頭。它正在查看/usr/include
而不是/home/be/build_dir/usr/include
。不應該--with-sysroot
選項也修改包含目錄或我錯過了什麼?
而且,我得到一個警告
libtool: link: warning: library libstdc++.la was moved
,我感到我已經錯過了一些感覺。這個警告是我可以安全地忽略的東西,還是我在某個地方搞砸了?
總結我的問題: 1)和make DESTDIR=x install
之間有什麼區別嗎? 2)什麼是正確的方式來更新庫頭的搜索路徑? 3)爲什麼我會收到有關libstdC++的警告,這是我應該擔心的事情嗎?
感謝您的有用信息。我不確定我是否理解shell腳本包裝器的含義。 – zmb