"-fpermissive" og "include" virker ikke i linux c compiler

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

Jeg bruger Jenkins til Integretion et stort projekt.

Når jeg bygger projektet i jenkins på windows meachine, bygges succes.

Men når jeg bygger det samme projekt i jenkins på Linux meachine, mislykkedes bygningen.

Jeg får en masse fejl, sådan:

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

og problem med navnet på filen:

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                                           ^ 

Navnet på filen er: Iprs_audio_defs.h (stort bogstav)

I Windows betyder forskellen mellem bogstaver ikke noget, men i Linux fik jeg denne fejl. Jeg kan ikke omdøbe filerne, fordi dette er et stort projekt, og mit ansvar er bare Jenkins

Enhver hjælp?

4 Comments
Downvoter 07/30/2017
"I Windows betyder forskellen mellem bogstaver ikke noget" Forskellen mellem hvilke bogstaver nøjagtigt? Hvad er dine kompilatorer på henholdsvis Windows og Linux?
Michael 07/30/2017
"Jeg kan ikke omdøbe filerne, fordi dette er et stort projekt, og mit ansvar er bare Jenkins" Så fortæl udviklerne at rette op på det.
ShiraOzeri 07/30/2017
mange tak for svaret! @Downvoter Jeg kontrollerer dette i min linux (centOS), og min compiler er: gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-11) .but i windows ved jeg ikke hvad min kompilator er. Jeg kontrollerer svar for dette, men fandt ikke. projektet på Android Studio med ac-fil, men jeg har også visuel studio 2015 på min coputer. Beklager forvirringen..
Jonathan Leffler 07/30/2017
Windows har et uhensigtsmæssigt filsystem (det gør også macOS); Linux har et case-sensitive filsystem. Du skal stave stien til overskriften nøjagtigt på Linux, mens du kan være sjusket på Windows.

1 Answers


Dan Albert 08/10/2017.

Jeg kan ikke omdøbe filerne, fordi dette er et stort projekt, og mit ansvar er bare Jenkins

Desværre er det den eneste mulighed. Linux er case-sensitive.

4 comments
ShiraOzeri 08/30/2017
Tak, er der flere forskelle? Måske med NULL? Jeg fastsatte bogstaverne ... men det kører stadig kun på Windows og ikke på Linux
Dan Albert 08/30/2017
NULL er ikke en fil. C / C ++ er allerede store og små bogstaver. Sagsfølsomhed for filnavne er forskellen.
ShiraOzeri 08/31/2017
Men selv efter at jeg har rettet sagen følsom, falder bygningen. selv når jeg bygger det samme projekt på Windows-maskine, lykkes det. Men med Linux-maskinen (centOS) mislykkedes.). Koden er kompileret, så begynder du at køre testen fra projektet og derefter falde. fejlen: testen mislykkedes at køre til færdiggørelse. Årsag: 'Instrumentation kørsel mislykkedes på grund af' java.lang.IllegalArgumentException '
Dan Albert 08/31/2017
Det lyder som et andet problem, og et der ikke er NDK relateret. Du vil nok gerne stille et nyt spørgsmål til dette problem, men en hurtig google-søgning efter denne fejl finder: stackoverflow.com/questions/22085760/...

Related questions

Hot questions

Language

Popular Tags