Pergunta

Eu usei Clint Harris' tutorial para configurar partilha de códigos entre projetos, e tudo funciona apenas como esperado no meu computador. Mas na máquina do meu colega de trabalho, parece que o compilador não encontrar o arquivo de cabeçalho do projeto de biblioteca estática quando ele constrói.

Meu colega de trabalho tem meu projeto por clonagem de um repositório git. Passamos por todas as bandeiras de construção relevantes e configurações XCode n vezes, mas o projeto simplesmente se recusa a compilar em sua máquina.

Isto é o que eu perguntei ao meu colega de trabalho a fazer, principalmente copiado e colado a partir do tutorial:

  1. Certifique-se Certifique há espaço NO branco no caminho completo para o diretório dos projetos.
  2. Dentro do diretório de projetos, crie outra pasta chamada "build_output".
  3. No Xcode, em “XCode> Preferences 'escolha a guia' Construção” e set ‘Construir projetos Place in’ para ‘local personalizado’ e especifique o caminho para o diretório de construção comum que você criou.
  4. Set “Place Intermediate criar arquivos em” para “Com os produtos de construção.”
  5. Escolha a guia “Árvores Source” e criar uma nova variável Árvore Fonte clicando no botão “+” e preenchendo as colunas. Em ambos "Definir Nome" e "Nome de exibição", put [O nome do projeto compartilhado que criou a biblioteca estática]. No caminho, você colocar o caminho completo para a pasta quadro.

Após estas etapas, o projeto que usa a biblioteca estática deve compilar o mesmo em sua máquina como na minha. Mas isso não acontece. Basicamente, o erro que ele recebe é:

error: TheFrameworkHeader.h: No such file or directory

e, em seguida, uma série de outros erros causados ??pelo cabeçalho faltando.

Qualquer estratégias para a solução de problemas de presente? Ou qualquer um que teve uma experiência semelhante e poderia compartilhar algum conhecimento suado? Falta alguma coisa a partir das instruções que eu resumidos? Preciso definir os papéis dos cabeçalhos na fase de construção Copiar cabeçalhos quando compilar uma biblioteca estática?

Foi útil?

Solução

Apesar de alguns conselhos úteis, eu nunca figurei este para fora, mas aqui está um pouco de informação para qualquer pessoa em uma situação similar. Eu criei o projeto de biblioteca e dependente, dividindo um projecto original em dois. Na primeira, a biblioteca e aplicação foram apenas dois destinos dentro do mesmo projeto. Mais tarde, mudou-se o aplicativo para um projeto separado. Tudo parecia trabalho, e eu empurrei os dois projetos para repositórios git remotos. Quando estes foram clonados em outros computadores, no entanto, os cabeçalhos de biblioteca não foram encontrados.

Mais tarde, eu descobri que o mesmo erro ocorreu quando eu clonado os projetos no computador original. Depois de muita luta, eu prendeu até um detalhe assustador: o nome da pasta do projeto dependente (. Ou seja, o projeto com a aplicação, não a biblioteca) Não é o nome do pacote .xcodeproject, não o identificador de aplicação, mas o nome do contendo pasta . Assim que eu mudar isso, tudo funciona. Se eu mudar de volta para o nome original (em qualquer computador), novamente os cabeçalhos não são encontrados.

Se alguém tem qualquer visão sobre isso, por favor postar uma resposta!

EDIT: Desde que eu postei isso, o mesmo problema ocorreu com outro projeto e, novamente, apenas mudar o nome da pasta que contém a pasta .xcodeproject corrigiu o problema

.

Outras dicas

Eu não acho que é Git, eu acho que é o Xcode. Eu tenho um problema muito semelhante aqui, onde Xcode / xcodebuild resolve um caminho de inclusão falsamente (tornando-se uma simples.) Com os exatamente os mesmos arquivos de biblioteca do projeto e xcconfig (check-out limpo a partir do SVN repo), mas outra pasta contendo - ele funciona. Então, thanx para a solução e não culpo mais Git; -)

Muitas vezes se esqueça de verificar o seguinte:? Você tem certeza que o ficheiro em falta (ou seja, TheFrameWorkHeader.h" está no repositório git Pode muito bem ser que as suas configurações de compilação estão corretas, mas o arquivo de alguma forma não se adicionado ao git corretamente.

Se você está tendo problemas de construção em uma máquina específica, então o problema provavelmente é uma configuração de máquina ou usuário. Tal como uma ambiente variável (talvez include_path ou um de seus parentes - XCode usa GCC). Você pode ter um "" em uma dessas variáveis.

A melhor maneira de corrigir isso seria adicionar o caminho da pasta necessária para o interruptor -I no script de construção.

Verifique que a "Pesquisa Paths-> user Header caminhos de pesquisa" configuração construção (para todas as configurações) aponta para o diretório que contém o projeto Xcode compartilhado (você pode usar a nova variável árvore de fontes que você criou).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top