cocos2dx3.x項目升級xcode15以上后會有幾處報錯。
1. CCFontAtlas.cpp文件下的iconv與iconv_close的報錯。修改如下:
// iconv_close(_iconv);iconv_close((iconv_t)_iconv);iconv((iconv_t)_iconv, (char**)&pin, &inLen, &pout, &outLen);
// iconv(_iconv, (char**)&pin, &inLen, &pout, &outLen);
2. Duplicate symbols報錯。這是因為Xcode 15以上采用了新的鏈接器,即ld_prime。雖然新鏈接器帶來了許多性能改進,但在某些情況下,它可能不兼容舊的庫或代碼結構,導致Duplicate symbols錯誤。為了解決舊項目兼容性問題我們需要告訴Xcode在編譯時使用舊的鏈接器(ld64),而不是新的ld_prime鏈接器。這樣做可以確保與舊庫和代碼結構的兼容性,從而避免Duplicate symbols錯誤。
- 打開Xcode,并選擇你的項目。
- 在項目導航器中找到你的目標(Target)。
- 點擊目標,然后選擇“Build Settings”(構建設置)。
- 在搜索框中輸入“Other Linker Flags”(其他鏈接器標志)。
- 在“Other Linker Flags”下,添加一行新的標志:“-ld64”。