• 大发快乐十分官网

  • 大发快乐十分官网

  • 大发快乐十分官网

  • 大发快乐十分官网

大发快乐十分官网

作者︰李(li)華明  發(fa)布日期(qi)︰2020-04-02 13:56:47
Tag標簽(qian)︰iOS-Cocos2d  游戲開發(fa)  Xcode  
  • 大家都知道Xcode中支持C、C++、Object-C3種語言的混編,在上一節Box2d中介紹(shao)過(guo)cocos2d封裝(zhuang)的box2d是c++源(yuan)碼實現的,那麼如果想讓編譯器混編,只需要將實現類的”.m”格式修改成(cheng)”.mm”即可,這樣(yang)編譯器即可編譯允許c、c++、oc的代碼;

    但(dan)是混編代碼,在編譯最容易出現也是最多的錯誤如下︰


    Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/g++-4.2 failed with exit


     

    部分分析總結如下︰

     1.  (全局zhi)淞浚tatic方法名重復(fu)-因為(wei)C語言里(li)沒有對象的概念,它的方法只要加(jia)入相應的.h文件就可以使用,所(suo)以,如果和C++ or Objective-C的靜(jing)態方法重名了,那麼環(huan)境無法區(qu)分,很明顯,這個(ge)錯誤是編譯時(shi)候(hou)的錯誤,而對于static的變量及方法是在編譯的時(shi)候(hou)便被加(jia)入的,所(suo)以無法識(shi)別.

     2.  (命(ming)名空(kong)間)全局zhi)淞棵馗fu),理由和上面是一樣(yang)的,當然,如果是全局zhi)淞建議在Objective-C的.m文件(當然現在被改成(cheng).mm了)中聲名,不然,聲明在.h中單(dan)獨(du)使用是沒有問題(ti)的,如果直(zhi)接引用了C or C++的.h,那麼即使這時(shi)候(hou)全局zhi)淞坎恢馗fu),也會(hui)出現上面的問題(ti).

     3.  (主函數)含有多個(ge)main方法,main方法是程序的入口,如果有多個(ge)文件含有main方法,那麼也會(hui)出現上面的問題(ti).

       其實對于“failed with exit”的問題(ti),總的來說,這個(ge)問題(ti)就是因為(wei)方法或是全局zhi)淞恐馗fu)所(suo)導致的編譯環(huan)境無法識(shi)別並(bing)編譯 !所(suo)以童鞋(xie)們(men)使用混編程序的時(shi)候(hou)要特別注(zhu)意(yi),最好的解(jie)決(jue)辦(ban)法就是,如果你的項(xiang)目後期(qi)有1/100000 的幾率會(hui)使用混編進行(例如加(jia)入box2d開發(fa)包),那麼就應該(gai)從項(xiang)目一開始就將實現類修改成(cheng)”.mm”格式進行編譯代碼,防止後期(qi)復(fu)雜的各種混編問題(ti);  www.it165.net

    OK,這篇小結就到這里(li);


About IT165 -廣告(gao)服(fu)務(wu) -广东体彩网官网隱(yin)私聲明 -版(ban)權申明 -免責(ze)條(tiao)款(kuan) -網站地圖 -網友投稿 -聯(lian)系方式
本站內容來自于互聯(lian)網,僅供(gong)用于網絡技術學習,學習中請遵循相關法律法規
大发快乐十分官网 | 下一页