Saya sedang mengembangkan aplikasi di Xcode.
Ketika saya mencoba membangun, kesalahan ini muncul:
ld: in /Users/theodore/Library/Developer/Xcode/DerivedData/Tower-bkpdifuqssebjdgurzmtirbxejnn/Build/Intermediates/Tower.build/Debug/Tower.build/Objects-normal/x86_64/TWRAppDelegate.o, file too small for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Apakah ada yang tahu apa yang salah?
TWRAppDelegate.o
file tersebut rusak atau berukuran nol.Jawaban:
Mencuri jawaban @ martin-baulig:
Coba rekondisi / bersihkan sepenuhnya. Ada kemungkinan bahwa build sebelumnya telah dibatalkan secara tidak normal, meninggalkan file TWRAppDelegate.o rusak atau berukuran nol.
sumber
Saya biasanya menambahkan spasi (bisa berupa karakter apa saja) ke file yang dimaksud, hapus lalu simpan. Lebih mudah dan lebih cepat daripada bangunan yang bersih.
sumber
Untuk memperbaiki masalah ini secara otomatis
Build Script Phase
dapat ditambahkan. Goto Xcode -> Proyek Anda -> Target Anda -> Build Phases -> + -> New Run Script PhaseUbah namanya menjadi
Xcode Link Fix
dan pindahkan ke atasCompile Sources
fase. Tempel ini ke dalam badan skrip:# Legacy build system legacy_dir=`dirname "${LD_DEPENDENCY_INFO_FILE}"` if [ -d "${legacy_dir}" ]; then find "${legacy_dir}" -size 0 | while read -d $'\n' file; do rm "$file" done fi # New build system if [ -d "${OBJECT_FILE_DIR_normal}" ]; then find "${OBJECT_FILE_DIR_normal}" -size 0 | while read -d $'\n' file; do rm "$file" done fi
Skrip ini memeriksa file objek dengan ukuran nol dan menghapusnya sehingga ketika kompilasi selesai di langkah berikutnya, itu berhasil.
Anda perlu menambahkan skrip ini untuk setiap target aplikasi jika Anda punya banyak.
Skrip ini membutuhkan ~ 0,1 detik untuk dijalankan dan menyelamatkan Anda dari pembangunan kembali proyek penuh.
sumber
rm -rf /Users/hostname/Library/Developer/Xcode/DerivedData
sumber
hapus saja file ini dengan menjalankan cmd di aplikasi terminal Anda:
sumber
Cara cepat untuk memperbaiki kesalahan tanpa pembersihan cache lengkap:
TWRAppDelegate
)sumber
Karena membangun proyek yang bersih mungkin memakan waktu terlalu lama, ada cara yang lebih singkat bagi mereka yang memiliki akses ke file yang rusak di cache:
Versi lengkap sehingga Anda tidak kesulitan menemukan file:
sumber
Anda cukup menghapus file TWRAppDelegate.o dan melanjutkan pembuatan Anda. Salin jalur lengkap yang disebutkan dalam pesan kesalahan dan tempel di belakang perintah 'rm' di terminal Anda. Tidak perlu membersihkan / membangun kembali, menghapus data turunan, menambah / menghapus file dari proyek, dll.
sumber
Langkah 1. Buka: Project> Build Settings> Search Paths
Langkah 2. Setel "Selalu Telusuri Jalur Pengguna" ke Ya
Langkah 3. Bangun proyek (Anda akan mendapat peringatan tetapi proyek akan dibangun.)
Langkah 4. Setel "Selalu Telusuri Jalur Pengguna" kembali ke Tidak dan buat lagi untuk menghilangkan peringatan
sumber
Membangun kembali bersih tidak dalam kasus saya jadi saya menjelaskan bagaimana saya menyelesaikan masalah:
- Referensi yang dihapus ke file tersebut (jangan hapus file)
- Tambahkan file ke proyek lagi dan jalankan
sumber