"-permisivo" e "incluir" no funcionan en el compilador de linux c

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

Utilizo Jenkins para Integretion en un gran proyecto.

Cuando construyo el proyecto en jenkins en windows meachine, la compilación tiene éxito.

Pero cuando construyo el mismo proyecto en jenkins en linux meachine, la construcción falló.

Recibo muchos errores, como este:

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

y problema con el nombre del archivo:

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                                           ^ 

El nombre del archivo es: Iprs_audio_defs.h (letra mayúscula)

En Windows, la diferencia entre las letras no importa, pero en Linux obtuve este error. No puedo cambiar el nombre de los archivos porque este es un gran proyecto y mi responsabilidad es solo Jenkins

¿Alguna ayuda?

4 Comments
Downvoter 07/30/2017
"En Windows, la diferencia entre letras no importa" ¿La diferencia entre qué letras es exactamente? Además, ¿cuáles son tus compiladores en Windows y Linux, respectivamente?
Michael 07/30/2017
"No puedo renombrar los archivos porque este es un gran proyecto y mi responsabilidad es solo Jenkins". Así que diles a los desarrolladores que lo arreglen.
ShiraOzeri 07/30/2017
¡Muchas gracias por la respuesta! @Downvoter Lo compruebo en mi Linux (centOS) y mi compilador es: gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-11) .pero en Windows no sé cuál es mi compilador. Reviso la respuesta pero no encontré el proyecto en Android Studio con el archivo ac, pero también tengo Visual Studio 2015 en mi computadora. Perdón por la confusion..
Jonathan Leffler 07/30/2017
Windows tiene un sistema de archivos insensible a mayúsculas y minúsculas (también lo hace macOS); Linux tiene un sistema de archivos sensible a mayúsculas y minúsculas. Debe deletrear correctamente la ruta del encabezado en Linux, mientras que puede ser descuidado en Windows.

1 Answers


Dan Albert 08/10/2017.

No puedo cambiar el nombre de los archivos porque este es un gran proyecto y mi responsabilidad es solo Jenkins

Desafortunadamente esta es la única opción. Linux distingue entre mayúsculas y minúsculas.

4 comments
ShiraOzeri 08/30/2017
Gracias, ¿hay más diferencias? Tal vez con NULL? Repare las letras ... pero todavía se ejecuta solo en Windows y no en Linux
Dan Albert 08/30/2017
NULL no es un archivo. C / C ++ ya son sensibles a mayúsculas y minúsculas. La diferencia de mayúsculas y minúsculas de los nombres de archivo es la diferencia
ShiraOzeri 08/31/2017
Pero, incluso después de haber corregido las mayúsculas y minúsculas, la construcción cae. incluso eso cuando construyo el mismo proyecto en una máquina con Windows, es exitoso. Pero con la máquina Linux (centOS) falló). El código se compila, luego comienza a ejecutar las pruebas desde el proyecto y luego cae. el error: la prueba no se ejecutó hasta su finalización. Motivo: 'La ejecución de la instrumentación falló debido a' java.lang.IllegalArgumentException '
Dan Albert 08/31/2017
Suena como un problema diferente, y uno que no está relacionado con NDK. Es probable que desee hacer una nueva pregunta para ese problema, pero una búsqueda rápida en Google para ese error encuentra: stackoverflow.com/questions/22085760/...

Related questions

Hot questions

Language

Popular Tags