"-fpermissive" en "include" werken niet in linux c-compiler

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

Ik gebruik Jenkins to Integretion een groot project.

Toen ik het project in jenkins op windows meachine bouwde, was de build succesvol.

Maar toen ik hetzelfde project in jenkins op linux meachine bouwde, faalde de build.

Ik krijg veel fouten, zoals dit:

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

en probleem met de naam van het bestand:

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                                           ^ 

De naam van het bestand is: Iprs_audio_defs.h (hoofdletter)

In windows doet het verschil tussen letters er niet toe, maar in Linux kreeg ik deze foutmelding. Ik kan de bestanden niet hernoemen omdat dit een groot project is en mijn verantwoordelijkheid gewoon Jenkins is

Alle hulp?

4 Comments
Downvoter 07/30/2017
"In vensters maakt het verschil tussen letters niet uit" Het verschil tussen welke letters precies? En wat zijn uw compilers op respectievelijk Windows en Linux?
Michael 07/30/2017
"Ik kan de bestanden niet hernoemen, want dit is een groot project en mijn verantwoordelijkheid is gewoon Jenkins" Dus vertel de ontwikkelaars om het te repareren.
ShiraOzeri 07/30/2017
heel erg bedankt voor het antwoord! @Downvoter Ik controleer dit in mijn linux (centOS) en mijn compiler is: gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-11) .maar in windows weet ik niet wat mijn compiler is. ik controleer het antwoord hiervoor maar heb het niet gevonden .. het project op Android Studio met AC-bestand, maar ik heb ook Visual Studio 2015 op mijn coputer. Sorry voor de verwarring..
Jonathan Leffler 07/30/2017
Windows heeft een niet-hoofdlettergevoelig bestandssysteem (net als macOS); Linux heeft een hoofdlettergevoelig bestandssysteem. Je moet het pad voor de header nauwkeurig spellen op Linux, terwijl je slordig kunt zijn in Windows.

1 Answers


Dan Albert 08/10/2017.

Ik kan de bestanden niet hernoemen omdat dit een groot project is en mijn verantwoordelijkheid gewoon Jenkins is

Helaas is dit de enige optie. Linux is hoofdlettergevoelig.

4 comments
ShiraOzeri 08/30/2017
Bedankt, zijn er nog meer verschillen? Misschien met NULL? Ik heb de letters gerepareerd ... maar het werkt nog steeds alleen op Windows en niet op Linux
Dan Albert 08/30/2017
NULL is geen bestand. C / C ++ zijn al hoofdlettergevoelig. Hoofdlettergevoeligheid van bestandsnamen is het verschil.
ShiraOzeri 08/31/2017
Maar zelfs nadat ik de hoofdlettergevoeligheid heb gecorrigeerd, valt de build weg. zelfs wanneer ik hetzelfde project op een Windows-computer bouw, is het succesvol. Maar met de Linux-machine (centOS) is mislukt.). De code is gecompileerd, begint vervolgens met het uitvoeren van de tests van het project en valt vervolgens. de fout: test kan niet worden voltooid. Reden: 'Instrumentering mislukt vanwege' java.lang.IllegalArgumentException '
Dan Albert 08/31/2017
Klinkt als een ander probleem en een probleem dat niet met NDK te maken heeft. U zult waarschijnlijk een nieuwe vraag voor dat probleem willen stellen, maar een snelle Google-zoekopdracht voor die fout vindt u: stackoverflow.com/questions/22085760/...

Related questions

Hot questions

Language

Popular Tags