2013-06-07 2 views
1

리눅스 환경에서 ARM 용 GNU 툴에 의해 생성 된 정적 라이브러리 (.a)가 있고이 라이브러리를 사용하고 싶습니다 Windows 환경 (Visual Studio 2008)에서는 ARM 아키텍처 용 Microsoft 도구를 사용합니다. Microsoft 도구에서 .a 정적 라이브러리를 사용할 수 있습니까?gnu에 의해 생성 된 정적 라이브러리를 사용하는 방법 arm 용 마이크로 소프트 C/C++ 툴을 사용하는 arm 용 C/C++ 툴

MS 컴파일러의 소스 코드를 컴파일 할 수없는 이유는 소스 코드가 없습니다.

감사합니다.

+2

라이브러리가 ELF 인 경우 아무런 기회도 없습니다. COFF이면 무슨 일이 일어나고 있는지, 어쩌면 행운이고 통화 규칙이 같은지 확인할 수 있습니다. – neagoegab

+0

이름을 .a에서 .lib로 Microsoft 도구와 연결되어 해당 라이브러리의 함수 중 하나가 호출되었습니다. 그것은 다음과 같은 오류가 발생합니다 : 치명적인 오류 LNK1107 : 잘못되었거나 손상된 파일 : 0x1B9E20에서 읽을 수 없습니다 – user2463118

+0

파일 확장명을 변경하면 파일 내용이 마술처럼 변환되지 않습니다. 대신에 다른 오브젝트 파일 형식 사이에서 변환 할 수있는'objcopy'를보십시오. '* .a' 파일은 "ar"아카이브이므로, 압축을 풀어서 내용을 처리해야 할 수도 있습니다. 어쨌든, Devolous가 아래에서 설명했듯이, 이것을 작동 시키려면 운이 필요합니다. –

답변

2

링크 할 수 있다고해도 도움이되지 않습니다. Linux 환경 용으로 컴파일 된 경우 Windows와 호환되지 않는 Linux 운영 체제 용 시스템 호출 등을 의미합니다. cygwin을 사용한다면 기회가있을 수 있습니다. 라이브러리에 OS와의 상호 작용이 필요하지 않은 지원 기능 만 포함되어 있다면 시도해 볼 수는 있지만 위에 언급 한 바와 같이 라이브러리가 COFF 형식으로 컴파일되지 않은 한이 기능이 작동하는지 의심 스럽습니다.

관련 문제