คำเตือนการรวบรวม: ไม่มีกฎในการประมวลผลไฟล์สำหรับสถาปัตยกรรม i386


245

ฉันจะแก้ไขคำเตือนนี้ได้อย่างไร

[คำเตือน] คำเตือน: ไม่มีกฎในการประมวลผลไฟล์ '$ (PROJECT_DIR) /MyApp/MessageCell.h' ของประเภท sourcecode.objj.h สำหรับสถาปัตยกรรม i386


มันยังบอกด้วยว่ามันกำลังพยายามรวบรวมไฟล์ส่วนหัวของคุณในฐานะ sourcecode.objj.h จาก Objective-J (ซึ่งใช้ไฟล์. h สำหรับส่วนหัวด้วย) คุณติดตั้ง Cappuccino หรือไม่?
themarketka

คำตอบ:


576

คลิกที่โครงการของคุณและตรวจสอบว่าไฟล์นี้ไม่มีอยู่ในแท็บ Build Phases ปกติไม่มีไฟล์ส่วนหัวควรอยู่ที่นี่ ทำความสะอาดและสร้างมันอีกครั้งมันน่าจะใช้ได้!


1
ฉันมีไฟล์ส่วนหัวเล็กน้อย แค่อยากรู้อยากเห็นทำไมไม่ควรมีส่วนหัว?
Sheehan Alam

30
เนื่องจากนี่คือรายการของไฟล์ต้นฉบับที่จะรวบรวมและโดยปกติแล้วคุณจะได้รวม <file> .h ไว้ใน <file> .m ของคุณแล้ว
Giuseppe

1
เมื่อใดก็ตามที่ฉันสร้างคลาสใหม่ XCode ของฉันจะเพิ่มไฟล์ส่วนหัวลงในเฟสการสร้างของฉันโดยอัตโนมัติ ฉันไม่รู้ว่าทำไมทุกคนมีเงื่อนงำว่าทำไมสิ่งนี้จึงเกิดขึ้น ปัจจุบันทุกครั้งที่ฉันสร้างคลาสใหม่ฉันต้องลบไฟล์ส่วนหัวออกจากเฟสการสร้างด้วยตนเอง
Bocaxica

1
ฉันอาจเพิ่มว่าไฟล์. h อาจปรากฏในเฟสการสร้าง (เมื่อไม่ควร) เนื่องจากไฟล์. m มีชื่ออื่น (โดยไม่ได้ตั้งใจ)
อาลี

นี่น่าจะสมเหตุสมผลแล้ว ... ฉันสร้างไฟล์ขึ้นมาเป็น. cpp จากนั้นเปลี่ยนชื่อเป็น. h
ddavison


17

เราสามารถแก้ไขปัญหานี้ได้โดยเพียงแค่ทำตามขั้นตอนดังต่อไปนี้ - บาง.md, .mdown .hไฟล์จะถูกรวมอยู่ในแหล่งที่รวบรวม
ขั้นตอนที่ 1) เลือกโครงการ Navigator
ขั้นตอนที่ 2) เลือกโครงการของคุณ
ขั้นตอนที่ 3) เลือก targetStep ของคุณ
ขั้นตอนที่ 4) เลือกรูปร่าง PhasesStep
ขั้นตอนที่ 5) ย้าย ไฟล์ที่เราไม่ต้องการให้คอมไพเลอร์ประมวลผลจากแหล่งรวบรวมเพื่อคัดลอกทรัพยากรบันเดิล

ตรวจสอบสิ่งนี้


3

หากคุณได้รับการแจ้งเตือนนี้จาก cocoapod คุณ ned เพื่อให้แน่ใจว่ามีการตั้งค่าอย่างถูกต้องในs.source_files.podspec

ตัวอย่างเช่นฉันเดิมรวมไฟล์ทั้งหมดด้วยบรรทัดนี้ในของฉัน .podspec

s.source_files = "MyUIElements/**/*"

ฉันได้รับคำเตือนการคอมไพล์นี้สำหรับไฟล์ฟอนต์บางตัวที่ฉันมีในพ็อด คุณสามารถควบคุมว่าไฟล์ใดจะแสดงในBuildPhases-> CompileSourcesเกี่ยวกับปริมาณการใช้ Pod ดังนี้:

s.source_files = "MyUIElements/**/*.swift", "MyUIElements/**/*.h"

1
หรือs.source_files = "Sources**/*.{h,m,swift}"?
hstdt

0

ปัญหา was't ไฟล์ส่วนหัวของฉันเพราะภายใต้Target> Build Phases> Compile Resourcesมีไม่ใด ๆ ที่.h filesจะเริ่มต้นด้วย ระบบกำลังบ่นเกี่ยวกับไฟล์อื่น ๆ ผมทำตามลิงค์นี้ซึ่งโดยทั่วไปกล่าวว่าลบไฟล์ระบบที่ถูกบ่นเกี่ยวกับ แต่ฉัน Cntrl + Copy Bundle Resourcesลากพวกเขาไป

วิธีที่ง่ายที่สุดในการค้นหาไฟล์คือใช้ตัวกรองที่มุมขวาบน:

ป้อนคำอธิบายรูปภาพที่นี่

นี่คือคำแนะนำจากลิงค์:

ป้อนคำอธิบายรูปภาพที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.