2017-02-17 26 views
0

Eclipse 7을 사용하여 Windows 7에서 Altera SoC (FPGA + ARM) 용 프로젝트를 크로스 컴파일하고 있습니다. 툴체인은 알테라의 도구에 의해 공급하고, 다음과 같이 보입니다한다 :라이브러리로 크로스 컴파일

GCC C++ Compiler 4 [arm-linux-gnueabihf] 
GCC C Compiler 4 [arm-linux-gnueabihf] 
GCC Assembler 4 [arm-linux-gnueabihf] 
GCC C Linker 4 [arm-linux-gnueabihf] 
GCC C++ Linker 4 [arm-linux-gnueabihf] 
GCC Archiver 4 [arm-linux-gnueabihf] 

알테라의 SoC 보드는 ARM에 옹스트롬 리눅스 배포판을 실행 중입니다.

일부 라이브러리 (예 : libcURL)를 추가하고 Eclipse 프로젝트 설정을 설정하여 컴파일 할 때 라이브러리를 포함해야합니다.

알 수 있습니다 : 일반적으로 라이브러리에는 2 개의 구성 요소가 포함되어 있습니다. 헤더와 라이브러리 정의 파일 (바이너리 형식). 컴파일러는 헤더 파일을 필요로합니다. 그러면 링커가 라이브러리 파일을 연결합니다.

(위의 내용이 잘못되면 저를 수정하십시오).

내 질문 :

바이너리 파일, ARM 프로세서에 대한 공급 내가 ARM 컴파일러 내 윈도우 7 시스템에서 라이브러리 소스 코드를 컴파일하는 알테라의 도구를 사용해야합니까하지 않는) 경우

하나? 알테라 제공 컴파일러 터미널을 사용하여 ./configure를 실행한다고 생각합니다.

2) libcURL과 같이 널리 사용되는 라이브러리의 경우 플랫폼마다 미리 컴파일 된 바이너리가 있습니다. 컴파일 된 라이브러리의 모양을 어떻게 알 수 있습니까? Eclipse가 전체 프로젝트를 컴파일하는 데 필요한 파일은 무엇입니까? (구체적으로 : * .lib, * .a, * .h, ...)

요약 : 크로스 컴파일에 난처한데, 그렇지 않습니다. 어떤 컴파일러가 필요한지, 그리고 어떤 라이브러리 파일이 필요한지에 대한 정보가 필요합니다.

cannot find -lcurl 

그 컴파일러가 * .H 파일을 볼 수있는 뜻하지만, 링커는 바이너리 파일을 찾을 수 없습니다 : 내가 건너 온 한

가장 일반적인 오류는?

답변

0

마지막으로, 내가 한 다음

내 대상 플랫폼 (알테라 De_nano_SoC ARM)로 라이브러리 소스 파일을 복사하고,이 라이브러리 (옹스트롬 리눅스, 컴파일러 팔 - 옹스트롬 - 리눅스 - gnueabi)를 집계했다. 이 경우 라이브러리 폴더에 구성 파일을 설정하고 을 실행하면은 make 명령을 만듭니다.

컴파일이 완료되면 내 호스트 컴퓨터 (Windows 7)에 출력 파일 (헤더 * .h 및 정적 라이브러리 파일 * .a 또는 공유 라이브러리 파일 * .so - 컴파일 구성에 따라)을 복사했습니다. 그런 다음 이클립스 DS-5 프로젝트에 파일을 추가했다.

Eclipse는 헤더 파일 * .h 및 * .a 또는 * .so 파일을 포함하는 .../lib 폴더가있는 .../include 폴더 경로가 필요합니다.