“-fmissmissive” e “include” não funcionam no compilador linux c

ShiraOzeri 07/30/2017. 1 answers, 44 views
android android c linux jenkins android-ndk android-ndk

Eu usando Jenkins para Integretion um grande projeto.

Quando eu construo o projeto em jenkins no windows meachine, a construção é bem-sucedida.

Mas, quando eu construir o mesmo projeto em jenkins em meachine linux, a compilação falhou.

Eu recebo muito erro, assim:

cc1: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C 

e problema com o nome do arquivo:

In file included from /var/lib/jenkins/workspace/mt-android-sdk-new/library/src/main/cpp/iprs_audio/iprs_audio_funcs.h:10:0,
                   from /var/lib/jenkins/workspace/mt-android-sdk-new/library/src/main/cpp/iprs_audio/iprs_audio_funcs.c:7:
  /var/lib/jenkins/workspace/mt-android-sdk-new/library/src/main/cpp/./iprs_audio/iprs_audio.h:15:40: fatal error: iprs_audio/iprs_audio_defs.h: No such file or directory
   #include                                           ^ 

O nome do arquivo é: Iprs_audio_defs.h (letra maiúscula)

No windows a diferença entre letras não importa, mas no linux eu recebi esse erro. Eu não posso renomear os arquivos porque este é um grande projeto e minha responsabilidade é apenas Jenkins

Qualquer ajuda?

4 Comments
Downvoter 07/30/2017
"Nas janelas a diferença entre letras não importa" A diferença entre quais letras exatamente? Além disso, quais são seus compiladores no Windows e no Linux, respectivamente?
Michael 07/30/2017
"Eu não posso renomear os arquivos porque este é um grande projeto e minha responsabilidade é apenas Jenkins" Então diga aos desenvolvedores para consertá-lo.
ShiraOzeri 07/30/2017
Muito obrigado pela resposta! @Downvoter Eu verifico isso no meu linux (centOS) e meu compilador é: gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-11) .mas no windows eu não sei o que é o meu compilador. Eu verifiquei a resposta para isso, mas não encontrei .. o projeto no Android Studio com um arquivo AC, mas eu também tenho visual studio 2015 no meu coputer. Desculpe pela confusão..
Jonathan Leffler 07/30/2017
O Windows possui um sistema de arquivos que não diferencia maiúsculas de minúsculas (o MacOS também); O Linux possui um sistema de arquivos que diferencia maiúsculas de minúsculas. Você tem que soletrar o caminho para o cabeçalho com precisão no Linux, enquanto você pode ser desleixado no Windows.

1 Answers


Dan Albert 08/10/2017.

Eu não posso renomear os arquivos porque este é um grande projeto e minha responsabilidade é apenas Jenkins

Infelizmente esta é a única opção. O Linux faz distinção entre maiúsculas e minúsculas.

4 comments
ShiraOzeri 08/30/2017
Obrigado, há mais alguma diferença? Talvez com NULL? Eu consertei as letras ... mas ainda funciona apenas no Windows e não no Linux
Dan Albert 08/30/2017
NULL não é um arquivo. C / C ++ já diferenciam maiúsculas de minúsculas. A diferenciação entre maiúsculas e minúsculas de nomes de arquivos é a diferença.
ShiraOzeri 08/31/2017
Mas, mesmo depois de ter corrigido o caso sensível, a compilação cai. mesmo que quando eu construo o mesmo projeto na máquina Windows, é bem sucedido. Mas com a máquina Linux (centOS) falhou.) O código é compilado, em seguida, começa a executar os testes do projeto e depois cai. o erro: o teste falhou ao ser executado até a conclusão. Motivo: Falha na execução da instrumentação devido a java.lang.IllegalArgumentException
Dan Albert 08/31/2017
Parece um problema diferente e um que não é relacionado ao NDK. Você provavelmente desejará fazer uma nova pergunta para esse problema, mas uma pesquisa rápida no Google para esse erro será encontrada: stackoverflow.com/questions/22085760/…

Related questions

Hot questions

Language

Popular Tags