"-fpermissive" и "include" не работают в компиляторе linux c

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

Я использую Jenkins для Integretion - большой проект.

Когда я строю проект в jenkins на windows meachine, сборка будет успешной.

Но, когда я строю тот же проект в jenkins на linux meachine, сборка не удалась.

Я получаю много ошибок, например:

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

и проблема с именем файла:

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                                           ^ 

Имя файла: Iprs_audio_defs.h (заглавная буква)

В Windows разница между буквами не имеет значения, но в linux я получил эту ошибку. Я не могу переименовать файлы, потому что это большой проект, и моя ответственность - просто Дженкинс

Любая помощь?

4 Comments
Downvoter 07/30/2017
«В окнах разница между буквами не имеет значения» Разница между буквами точно? Кроме того, каковы ваши компиляторы на Windows и Linux, соответственно?
Michael 07/30/2017
«Я не могу переименовать файлы, потому что это большой проект, и моя ответственность - это просто Дженкинс». Так скажите разработчикам исправить это.
ShiraOzeri 07/30/2017
Большое спасибо за ответ! @Downvoter Я проверяю это в моем linux (centOS), а мой компилятор: gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-11). Но в Windows я не знаю, что такое мой компилятор. я проверяю ответ для этого, но не нашел .. проект на Android Studio с файлом ac, но у меня также есть визуальная студия 2015 на моем копуле. Извините за путаницу ..
Jonathan Leffler 07/30/2017
Windows имеет файловую систему, не учитывающую регистр (например, macOS); Linux имеет файловую систему с учетом регистра. Вы должны четко указать путь для заголовка в Linux, тогда как вы можете быть неаккуратным в Windows.

1 Answers


Dan Albert 08/10/2017.

Я не могу переименовать файлы, потому что это большой проект, и моя ответственность - просто Дженкинс

К сожалению, это единственный вариант. Linux чувствителен к регистру.

4 comments
ShiraOzeri 08/30/2017
Спасибо, есть ли еще различия? Может быть, с NULL? Я исправил буквы ... но он по-прежнему работает только на Windows, а не на Linux
Dan Albert 08/30/2017
NULL не является файлом. C / C ++ уже чувствительны к регистру. Чувствительность регистра файлов - это разница.
ShiraOzeri 08/31/2017
Но даже после того, как я скорректировал чувствительный к делу случай, сборка падает. даже если я создаю один и тот же проект на Windows-машине, он будет успешным. Но с машиной Linux (centOS) не удалось.). Код скомпилирован, а затем запускает тесты из проекта, а затем падает. ошибка: тест не удалось выполнить до завершения. Причина: «Сбой инструментария из-за« java.lang.IllegalArgumentException »
Dan Albert 08/31/2017
Похоже на другую проблему, и не связанную с NDK. Вероятно, вы захотите задать новый вопрос для этой проблемы, но быстрый поиск этой ошибки в google находит: stackoverflow.com/questions/22085760/...

Related questions

Hot questions

Language

Popular Tags