"-fpermissive" e "include" non funzionano nel compilatore linux c

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

Sto usando Jenkins per Integretion un grande progetto.

Quando costruisco il progetto in jenkins su windows meachine, la costruzione ha avuto successo.

Ma quando costruisco lo stesso progetto in jenkins su linux meachine, la build fallisce.

Ottengo un sacco di errori, come questo:

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

e problema con il nome del file:

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                                           ^ 

Il nome del file è: Iprs_audio_defs.h (lettera maiuscola)

In Windows la differenza tra le lettere non ha importanza, ma in Linux ho ricevuto questo errore. Non posso rinominare i file perché questo è un grande progetto e la mia responsabilità è solo Jenkins

Qualsiasi aiuto?

4 Comments
Downvoter 07/30/2017
"In Windows la differenza tra le lettere non ha importanza" La differenza tra quali lettere esattamente? Inoltre, quali sono i tuoi compilatori su Windows e Linux, rispettivamente?
Michael 07/30/2017
"Non posso rinominare i file perché questo è un grande progetto e la mia responsabilità è solo Jenkins" Dì agli sviluppatori di risolvere il problema.
ShiraOzeri 07/30/2017
Grazie mille per la risposta! @Downvoter Controllo questo nel mio linux (centOS) e il mio compilatore è: gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-11). Ma in Windows non so quale sia il mio compilatore. Controllo la risposta per questo ma non ho trovato .. il progetto su Android Studio con file ac, ma ho anche studio visivo 2015 sul mio coputer. Dispiace per la confusione..
Jonathan Leffler 07/30/2017
Windows ha un file system senza distinzione tra maiuscole e minuscole (così come macOS); Linux ha un file system sensibile al maiuscolo / minuscolo. Devi scrivere correttamente il percorso per l'intestazione su Linux, mentre su Windows puoi essere sciatto.

1 Answers


Dan Albert 08/10/2017.

Non posso rinominare i file perché questo è un grande progetto e la mia responsabilità è solo Jenkins

Sfortunatamente questa è l'unica opzione. Linux è case-sensitive.

4 comments
ShiraOzeri 08/30/2017
Grazie, ci sono altre differenze? Forse con NULL? Ho corretto le lettere ... ma funziona ancora solo su Windows e non su Linux
Dan Albert 08/30/2017
NULL non è un file. C / C ++ sono già case sensitive. La distinzione tra maiuscole e minuscole dei nomi di file è la differenza.
ShiraOzeri 08/31/2017
Ma, anche dopo aver corretto la distinzione tra maiuscole e minuscole, la build cade. anche che quando costruisco lo stesso progetto su una macchina Windows, ha successo. Ma con la macchina Linux (centOS) non è riuscito.). Il codice viene compilato, quindi inizia a eseguire i test dal progetto e quindi cade. l'errore: il test non è stato eseguito fino al completamento. Motivo: "L'esecuzione della strumentazione non è riuscita a causa di" java.lang.IllegalArgumentException "
Dan Albert 08/31/2017
Sembra un problema diverso e non correlato all'NDK. Probabilmente vorrai fare una nuova domanda per quel problema, ma una rapida ricerca su google per tale errore lo trova: stackoverflow.com/questions/22085760/...

Related questions

Hot questions

Language

Popular Tags