2016-08-02 2 views
0

저는 정적 라이브러리에 대한 작업 바인딩 프로젝트를 만드는 방법을 알아 내려고하고 있습니다. 우리는 스스로 정적 라이브러리를 만들지 않았지만 우리는 그것을 사용할 권리가 있습니다.정적 라이브러리 바인딩 문제 (.a)

나는 성공없이이 페이지의 단계를 수행하는 것을 시도했다 : 무슨 일이 있었 기본적으로 https://developer.xamarin.com/guides/ios/advanced_topics/binding_objective-c/walkthrough/

이 나는 ​​목록을 가지고 명령을 실행 '* .A 바인드 --sdk = iphoneos9.3 샤피' 오류 (게시물 하단 참조) 그래서 이것을 여러 시간 동안 놀고 나니 ApiDefinition을 읽기로 결정했습니다. 위에서 링크 된 가이드에 설명 된 프로세스가 더 이상 사용되지 않으므로 .a 파일을 기본 참조로 추가해야합니다.

그리고 ApiDefinition의 주석에 따라 수동으로 바인딩을 만들어야합니다. 문제는 라이브러리 안의 메소드 이름을 모른다는 것입니다. 또한, 내가 한 경우에도 도서관은 거대합니다 (데스크톱 버전의 헤더 파일은 이미 36k 라인이었습니다).

누군가 진행 방법을 알려주시겠습니까? 샤피 명령의 오류

목록 :

Macbook-Pro:iossdk researchdevelopment$ sharpie bind --sdk=iphoneos9.3 libHCNetSDK_sim.a 
Parsing 1 header files... 
warning: /Users/researchdevelopment/Desktop/iossdk/libHCNetSDK_sim.a: 'linker' input unused 
warning: argument unused during compilation: '-c' 
warning: argument unused during compilation: '-fno-spell-checking' 
warning: argument unused during compilation: '-Xclang -detailed-preprocessing-record' 
warning: argument unused during compilation: '-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk' 
warning: argument unused during compilation: '-D NS_BUILD_32_LIKE_64' 
warning: argument unused during compilation: '-miphoneos-version-min=9.3' 
warning: argument unused during compilation: '-I /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include' 
warning: argument unused during compilation: '-I /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1' 
error: unable to handle compilation, expected exactly one compiler job in '' 
Error while processing /Users/researchdevelopment/Desktop/iossdk/libHCNetSDK_sim.a. 

Submitting usage data to Xamarin... 
Submitted - thank you for helping to improve Objective Sharpie! 

Done. Exiting with error code 1. 
error: Clang failed to parse input and exited with code 1 
+0

네이티브 라이브러리의 헤더 파일/파일에 액세스 할 수 있습니까? 목표 Sharpie는이 헤더 파일을 구문 분석하여 ApiDefinition.cs 및 StructsAndEnums.cs 파일을 생성하는 메서드 서명을 추출합니다. –

+0

헤더 파일이 있지만 Objective Sharpie가 파싱 할 수 없습니다. 헤더 파일을 수정하고 부품을 제거하려고 시도했지만 StructsAndEnums.cs 및 ApiDefinition.cs가 모두 생성됩니다. 이 일을하는 이유에 대한 단서? 이 문제를 해결하면 내 주요 문제가 해결 될 수 있습니까? – MrSoundless

답변

0

난 당신이 목적 샤피에 운영자와 파일을 전달할 수 있다고 생각하지 않습니다. 마지막으로 바인딩 프로젝트를 만들 때 this guide을 따랐습니다.

약 절반 정도가 Objective Sharpie를 실행하여 컴파일 된 바이너리가 아닌 헤더 만 전달하는 바인딩을 생성하는 방법의 예입니다.

+0

그 점은 StructsAndEnums.cs 만 생성한다는 것입니다. 헤더 파일을 2 개의 메서드 호출로 스트리핑 한 후에도 ApiDefinition.cs가 생성되지 않습니다. – MrSoundless

+0

우리는 PInvokes를 수행하고 정상 바인딩을 수행하지 않기 때문에 그것이라고 생각했습니다. – MrSoundless