Partilhar via


Estruturas de associação nativa

Às vezes, uma biblioteca nativa é distribuída como uma estrutura. Objective Sharpie fornece um recurso de conveniência para associar estruturas definidas corretamente por meio da opção -framework .

Por exemplo, associar a Adobe Creative SDK Framework para iOS é simples:

$ sharpie bind \
    -framework ./AdobeCreativeSDKFoundation.framework \
    -sdk iphoneos8.1

Em alguns casos, uma estrutura especificará um Info.plist que indica em qual SDK a estrutura deve ser compilada. Se essas informações existirem e nenhuma opção explícita -sdk for aprovada, Objective Sharpie a inferirá do Info.plist da estrutura (a DTSDKName chave ou uma combinação das DTPlatformName teclas e DTPlatformVersion ).

A -framework opção não permite que arquivos de cabeçalho explícitos sejam passados. O arquivo de cabeçalho umbrella é escolhido por convenção com base no nome da estrutura. Se um cabeçalho de guarda-chuva não puder ser encontrado, Objective Sharpie não tentará associar a estrutura e você deverá executar manualmente a associação fornecendo os arquivos de cabeçalho de guarda-chuva corretos para analisar, juntamente com quaisquer argumentos de estrutura para clang (como a opção de caminho de pesquisa de -F estrutura).

Nos bastidores, especificar -framework é apenas um atalho. Os argumentos de associação a seguir são idênticos à abreviação -framework acima. De importância especial é o caminho de pesquisa da -F . estrutura fornecido para clang (observe o espaço e o ponto, que são necessários como parte do comando).

$ sharpie bind \
    -sdk iphoneos8.1 \
    ./AdobeCreativeSDKFoundation.framework/Headers/AdobeCreativeSDKFoundation.h \
    -scope AdobeCreativeSDKFoundation.framework/Headers \
    -c -F .