คำถามติดแท็ก compiler-warnings

ข้อความที่ปล่อยออกมาโดยคอมไพเลอร์ซึ่งระบุปัญหาที่อาจเกิดขึ้นในโค้ดหรือคอนฟิกูเรชัน

7
วิธีตรวจหาวิธีที่ไม่ได้ใช้และ #import ใน Objective-C
หลังจากทำงานกับแอพ iPhone เป็นเวลานานฉันตระหนักว่ารหัสของฉันค่อนข้างสกปรกมี #import และวิธีการหลายอย่างที่ไม่ได้เรียกหรือมีประโยชน์เลย ฉันต้องการทราบว่ามีคำสั่งคอมไพเลอร์หรือวิธีตรวจจับบรรทัดโค้ดที่ไร้ประโยชน์เหล่านั้นหรือไม่ Xcode มีเครื่องมือตรวจจับสิ่งนี้หรือไม่?

10
ฉันจะกำจัดคำเตือน "ตัวแปรที่ไม่ได้ใช้" ใน Xcode ได้อย่างไร
ฉันเข้าใจแล้วว่าทำไมคำเตือนตัวแปรที่ไม่ได้ใช้จึงเกิดขึ้น ฉันไม่ต้องการปราบปรามพวกเขาโดยทั่วไปเพราะมันมีประโยชน์อย่างไม่น่าเชื่อในกรณีส่วนใหญ่ อย่างไรก็ตามให้พิจารณารหัส (ที่สร้างขึ้น) ต่อไปนี้ NSError *error = nil; BOOL saved = [moc save:&error]; NSAssert1(saved, @"Dude!!1! %@!!!", error); Xcode รายงานว่าsavedเป็นตัวแปรที่ไม่ได้ใช้งานซึ่งแน่นอนว่าไม่ใช่ตัวแปร ฉันสงสัยว่านี่เป็นเพราะNSAssert1มาโคร NS_BLOCK_ASSERTIONSมาโครไม่ได้กำหนดไว้เพื่อวัตถุประสงค์ยืนยัน C มีการใช้งานแน่นอน แม้ว่ามันจะไม่เจ็บอะไรเลย แต่ฉันพบว่ามันรกและน่ารำคาญและฉันอยากจะระงับมัน แต่ฉันไม่แน่ใจว่าจะทำอย่างไร การกำหนดตัวแปรให้ตัวเองจะกำจัดคำเตือนของคอมไพเลอร์ออกไป แต่ฉันอยากจะทำแบบนั้น "ถูกต้อง" ถ้ามีสิ่งนั้นอยู่จริง

7
วิธีรวบรวมโดยไม่มีคำเตือนถือว่าเป็นข้อผิดพลาด
ปัญหาคือโค้ดเดียวกันกับที่คอมไพล์บน Windows ไม่สามารถคอมไพล์บน Ubuntu ได้ ทุกครั้งที่ฉันได้รับข้อผิดพลาดนี้: cc1: warnings being treated as errors ตอนนี้มันเป็นฐานรหัสขนาดใหญ่และฉันไม่ชอบแก้ไขคำเตือนทั้งหมด มีวิธีใดบ้างที่ฉันสามารถรวบรวมได้สำเร็จทั้งๆที่มีคำเตือน

9
คุณจะปิดการใช้งานคำเตือนตัวแปรที่ไม่ได้ใช้งานที่ออกมาจาก gcc ในรหัสของบุคคลที่สามได้อย่างไร?
ฉันต้องการทราบว่าสวิตช์ใดที่คุณส่งต่อไปยังคอมไพเลอร์ gcc เพื่อปิดคำเตือนตัวแปรที่ไม่ได้ใช้ ฉันได้รับข้อผิดพลาดจากการเพิ่มประสิทธิภาพบน windows และฉันไม่ต้องการแตะรหัสเพิ่ม: C:\boost_1_52_0/boost/system/error_code.hpp: At global scope: C:\boost_1_52_0/boost/system/error_code.hpp:214:36: error: 'boost::system::posix_category' defined but not used [-Werror=unused-variable] C:\boost_1_52_0/boost/system/error_code.hpp:215:36: error: 'boost::system::errno_ecat' defined but not used [-Werror=unused-variable] C:\boost_1_52_0/boost/system/error_code.hpp:216:36: error: 'boost::system::native_ecat' defined but not used [-Werror=unused-variable] ฉันลองใช้ทั้งสองอย่าง-Wunused-valueและ-Wno-unused-valueไม่ได้ระงับข้อความข้างต้น คำสั่งที่ถูกต้องคืออะไรนี่คือบรรทัดคอมไพล์ของฉัน: g++ -g -fno-inline -Wall -Werror -Wextra -Wfloat-equal -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -Wno-conversion -Wdisabled-optimization …

7
ฉันจะกำจัดคำเตือนคอมไพเลอร์“ [บางเหตุการณ์] ไม่เคยใช้” ใน Visual Studio ได้อย่างไร
ตัวอย่างเช่นฉันได้รับคำเตือนของคอมไพเลอร์นี้ ไม่เคยใช้เหตุการณ์ 'Company.SomeControl.SearchClick' แต่ฉันรู้ว่ามันถูกใช้เพราะการแสดงความคิดเห็นมันทำให้ฉันเหมือน 20 คำเตือนใหม่ของหน้า XAML ที่พยายามใช้เหตุการณ์นี้! สิ่งที่ช่วยให้? มีเคล็ดลับในการกำจัดคำเตือนนี้หรือไม่?

6
ความหมายระดับคำเตือน Visual Studio?
บนแท็บสร้างในโครงการแอปพลิเคชันเว็บฉันมีการตั้งค่าที่เรียกว่า "ระดับคำเตือน" ฉันสามารถตั้งค่าได้ตั้งแต่ 0 ถึง 4 ค่าเหล่านี้หมายความว่าอย่างไร ค่า 0 จะเข้มงวดกว่าและสร้างคำเตือนมากขึ้นหรือในทางกลับกัน? ฉันยังไม่พบเอกสารใด ๆ ในเรื่องนี้ แต่บางทีฉันอาจจะมองผิดที่

4
ปิดการใช้งานคำเตือน GCC เฉพาะบางส่วนของหน่วยการแปลหรือไม่
GCC ที่ใกล้เคียงที่สุดเทียบเท่ากับรหัสตัวประมวลผลล่วงหน้า MSVC นี้คืออะไร #pragma warning( push ) // Save the current warning state. #pragma warning( disable : 4723 ) // C4723: potential divide by 0 // Code which would generate warning 4723. #pragma warning( pop ) // Restore warnings to previous state. เรามีโค้ดในส่วนหัวที่รวมอยู่ทั่วไปซึ่งเราไม่ต้องการสร้างคำเตือนที่เฉพาะเจาะจง อย่างไรก็ตามเราต้องการให้ไฟล์ที่มีส่วนหัวเหล่านั้นสร้างคำเตือนนั้นต่อไป (หากโปรเจ็กต์เปิดใช้งานคำเตือนนั้น)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.