0

我使用Buildroot裏面(2017年2月5日),以建立一個定製的交叉編譯工具鏈。我有兩個buildroot配置;一個建立RFS,一個純粹建立工具鏈。我以這種方式配置了一些東西,因爲我不想重新構建工具鏈,除非我故意重建它 - 構建RFS的配置將此工具鏈作爲外部工具鏈引用。Buildroot裏面工具鏈與OpenSSL的

通常,構建的工具鏈工作正常,但我有一些現有的應用程序(Linux用戶空間),其中#include<openssl/md5.h>。當我嘗試編譯這個時,我得到一個"<openssl/md5.h>: No such file or directory"錯誤,這是預期的,因爲生成的工具鏈的sysroot目錄不包含openssl目錄。

我怎樣才能讓buildroot的包括工具鏈OpenSSL的?我所做的所有搜索似乎都指向爲我的嵌入式目標交叉編譯openssl,這不是問題。問題是我需要將它包含在工具鏈中。

我有目標包 - >庫 - >加密 - > openssl設置爲y,但我不認爲這在這種情況下有任何區別,因爲我相信它只涉及RFS(和defconfig有問題不建立RFS,只有工具鏈)。

我可以編譯OpenSSL中的buildroot樹的外面,將其安裝到SYSROOT目錄,但這似乎並不正確,因爲它會污染SYSROOT。

我敢肯定,我失去了一些東西簡單這裏 - 任何幫助,將不勝感激。

+0

它的存在。您需要根據Buildroot爲您的定製軟件創建一個包。 – 0andriy

回答

0

在進一步閱讀了buildroot文檔(非常好)之後,我發現在Target packages下選擇的包實際上確實被推入了工具鏈的sysroot(或者至少應該是),這是合理的。這似乎沒有奏效的原因是因爲我在做一個make toolchain而不是make all(或只是一個簡單的make)。這些軟件包沒有和前者一起構建,所以他們不在工具鏈的sysroot中。

+0

在Buildroot 2017.08中,您還可以執行'make sdk'來構建所有包,並使結果可重定位。但是,您必須確保您自己的rootfs中的openssl與您的SDK中的openssl完全相同。 – Arnout