"-fpermissive" và "bao gồm" không làm việc trong trình biên dịch c linux

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

Tôi sử dụng Jenkins để tích hợp một dự án lớn.

Khi tôi xây dựng dự án trong jenkins trên cửa sổ meachine, việc xây dựng thành công.

Nhưng, khi tôi xây dựng cùng một dự án trong jenkins trên Linux meachine, việc xây dựng thất bại.

Tôi nhận được rất nhiều lỗi, như thế này:

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

và sự cố với tên của tệp:

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                                           ^ 

Tên của tệp là: Iprs_audio_defs.h (viết hoa)

Trong cửa sổ sự khác biệt giữa các chữ không quan trọng, nhưng trong linux tôi đã nhận lỗi này. Tôi không thể đổi tên các tập tin vì đây là một dự án lớn và trách nhiệm của tôi chỉ là Jenkins

Bất kỳ giúp đỡ?

4 Comments
Downvoter 30/07/2017
"Trong cửa sổ sự khác biệt giữa các chữ cái không quan trọng" Sự khác biệt giữa các chữ cái chính xác? Ngoài ra, các trình biên dịch của bạn trên Windows và Linux, tương ứng là gì?
Michael 30/07/2017
"Tôi không thể đổi tên các tập tin bởi vì đây là một dự án lớn và trách nhiệm của tôi chỉ là Jenkins" Vì vậy, hãy nói với các nhà phát triển để sửa chữa nó.
ShiraOzeri 30/07/2017
Cảm ơn rất nhiều cho câu trả lời! @Downvoter Tôi kiểm tra này trong linux của tôi (centOS) và trình biên dịch của tôi là: gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-11). Nhưng trong cửa sổ tôi không biết trình biên dịch của tôi là gì. tôi kiểm tra câu trả lời cho điều này nhưng không tìm thấy .. dự án trên Android Studio với tập tin ac, nhưng tôi cũng có studio trực quan năm 2015 trên máy tính của tôi. Xin lỗi vì sự nhầm lẫn..
Jonathan Leffler 30/07/2017
Windows có hệ thống tệp phân biệt chữ hoa chữ thường (do đó, không có macOS); Linux có hệ thống tệp phân biệt chữ hoa chữ thường. Bạn phải đánh vần đường dẫn cho tiêu đề chính xác trên Linux trong khi bạn có thể cẩu thả trên Windows.

1 Answers


Dan Albert 10/08/2017.

Tôi không thể đổi tên các tập tin vì đây là một dự án lớn và trách nhiệm của tôi chỉ là Jenkins

Thật không may đây là lựa chọn duy nhất. Linux phân biệt chữ hoa chữ thường.

4 comments
ShiraOzeri 30/08/2017
Cảm ơn, có sự khác biệt nào khác không? Có lẽ với NULL? Tôi đã sửa các chữ cái ... nhưng nó vẫn chỉ chạy trên Windows chứ không phải trên Linux
Dan Albert 30/08/2017
NULL không phải là một tệp. C / C ++ đã phân biệt chữ hoa chữ thường. Trường hợp nhạy cảm của tên tập tin là sự khác biệt.
ShiraOzeri 31/08/2017
Nhưng, ngay cả sau khi tôi đã sửa chữa các trường hợp nhạy cảm, xây dựng rơi. ngay cả khi tôi xây dựng cùng một dự án trên máy Windows, nó thành công. Nhưng với máy Linux (centOS) thất bại.). Mã được biên dịch, sau đó bắt đầu chạy các thử nghiệm từ dự án và sau đó giảm. lỗi: Kiểm tra không thành công để chạy. Lý do: 'Chạy thiết bị không thành công do' java.lang.IllegalArgumentException '
Dan Albert 31/08/2017
Âm thanh như một vấn đề khác, và một vấn đề không liên quan đến NDK. Có thể bạn sẽ muốn đặt một câu hỏi mới cho vấn đề đó, nhưng tìm kiếm nhanh trên google cho lỗi đó sẽ tìm thấy: stackoverflow.com/questions/22085760/…

Related questions

Hot questions

Language

Popular Tags