"-fpermissive" et "include" ne fonctionnent pas dans le compilateur linux c

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

J'utilise Jenkins à Integretion un grand projet.

Quand je construis le projet dans jenkins sur Windows Meachine, la construction réussie.

Mais, quand j'ai construit le même projet dans jenkins sur linux meachine, la construction a échoué.

Je reçois beaucoup d'erreur, comme ceci:

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

et problème avec le nom du fichier:

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                                           ^ 

Le nom du fichier est: Iprs_audio_defs.h (majuscule)

Dans Windows la différence entre les lettres n'a pas d'importance, mais dans Linux, j'ai eu cette erreur. Je ne peux pas renommer les fichiers parce que c'est un gros projet et ma responsabilité est juste Jenkins

De l'aide?

4 Comments
Downvoter 07/30/2017
"Dans Windows la différence entre les lettres n'a pas d'importance" La différence entre quelles lettres exactement? Aussi, quels sont vos compilateurs sur Windows et Linux, respectivement?
Michael 07/30/2017
"Je ne peux pas renommer les fichiers parce que c'est un gros projet et ma responsabilité est juste Jenkins" Alors dites aux développeurs de le réparer.
ShiraOzeri 07/30/2017
Merci beaucoup pour la réponse! @Downvoter Je vérifie cela dans mon linux (centOS) et mon compilateur est: gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-11). Mais dans Windows je ne sais pas quel est mon compilateur. Je vérifie la réponse pour cela mais je n'ai pas trouvé .. le projet sur Android Studio avec un fichier AC, mais j'ai aussi Visual Studio 2015 sur mon coputer. Désolé pour la confusion..
Jonathan Leffler 07/30/2017
Windows a un système de fichiers insensible à la casse (tout comme macOS); Linux a un système de fichiers sensible à la casse. Vous devez épeler le chemin de l'en-tête avec précision sur Linux alors que vous pouvez être bâclé sur Windows.

1 Answers


Dan Albert 08/10/2017.

Je ne peux pas renommer les fichiers parce que c'est un gros projet et ma responsabilité est juste Jenkins

Malheureusement, c'est la seule option. Linux est sensible à la casse.

4 comments
ShiraOzeri 08/30/2017
Merci, y a-t-il d'autres différences? Peut-être avec NULL? J'ai corrigé les lettres ... mais ça fonctionne toujours sous Windows et pas sous Linux
Dan Albert 08/30/2017
NULL n'est pas un fichier. C / C ++ sont déjà sensibles à la casse. La sensibilité à la casse des noms de fichiers est la différence.
ShiraOzeri 08/31/2017
Mais, même après avoir corrigé la casse, la construction tombe. même lorsque je construis le même projet sur Windows, c'est réussi. Mais avec la machine Linux (centOS) a échoué.). Le code est compilé, puis commence à exécuter les tests du projet, puis tombe. l'erreur: Échec de l'exécution du test. Raison: 'L'exécution de l'instrumentation a échoué en raison de' java.lang.IllegalArgumentException '
Dan Albert 08/31/2017
Cela ressemble à un problème différent et qui n'est pas lié à NDK. Vous aurez probablement envie de poser une nouvelle question pour ce problème, mais une recherche google rapide pour cette erreur trouve: stackoverflow.com/questions/22085760/...

Related questions

Hot questions

Language

Popular Tags