我正在嘗試爲ARM平臺交叉編譯Apache便攜式運行時庫APR-1.5.2 lib。我遵循以下步驟。針對ARM交叉編譯apr-1.5.2問題
./configure --host=aarch64-unknown-linux-gnu CC=aarch64-unknown-linux-gnu-gcc
make
我沒有收到在配置任何錯誤,使但是當我試圖將其鏈接到我的代碼我收到鏈接錯誤。
#include <iostream>
#include <stdio.h>
using namespace std;
#include "apr_general.h"
#include "apr_network_io.h"
#include "apr_strings.h"
int main(){
apr_initialize();
std::cout<<"Welcome Program compiling "<<std::endl;
return 0;
}
當我編譯使用交叉編譯器獲取錯誤的代碼。
aarch64-unknown-linux-gnu-g++ -o Test -I ../../../../Static_APR/apr-1.5.2/include DAS.cpp ../../../../Static_APR/apr-1.5.2/.libs/libapr-1.a -lpthread
**apr-1.5.2/.libs/libapr-1.a(start.o): Relocations in generic ELF (EM: 62)**
代碼用g ++編譯得很好。
g++ -o Test -I ../../../../Static_APR/apr-1.5.2/include DAS.cpp ../../../../Static_APR/apr-1.5.2/.libs/libapr-1.a -lpthread
爲什麼APR lib中沒有內置的臂(交叉編譯),即使我已經使用CC = aarch64未知-Linux的GNU-GCC
誰能幫我建立APR正確的方法用於交叉編譯?
感謝您的信息 按我的理解和GCC文檔 --build是你在建立 是--host你正在爲 --target機器機器的機器,GCC會產生二進制對於 –
@VinayPatel - 我的不好,對不起。根據Autoconf郵件列表中的[如何配置Android?](https://lists.gnu.org/archive/html/autoconf/2013-10/msg00003.html),您需要同時使用'--host '和'--build'。 '--target'用於構建編譯器。我要改變答案。 – jww