cocos2dx项目在XCode9下ntfw代替system

from :https://blog.csdn.net/u013654125/article/details/78320365

日前,有网友看了我的博客后,发消息告诉我遇到一个错误:说是找不到system。当前我的项目是没有问题的,没能找出问题所在。

报错如下:Call to unavailable function 'system': not available on iOS。写这句话是为了写关键字,让大家容易搜索。

后来,还是网友自己解决的,并把解决方案发给了我。

再后来,我也更新了Xcode,更新到Xcode9,也遇到问题,想起网友发给我的解决方案,一用,程序立马跑得飞起。

这里,我就借用一下网友的答案说给大家说一下这个情况。

在更新了Xcode9后,api也跟着更新了,所以有api接口错误很正常,按照接下来的操作就可以解决了。


image.png

原因:Xcode9将system api删除,使用ntfw api替代,解决方法如下:

一、在#include <dirent.h>下方添加:

#if (CC_TARGET_PLATFORM != CC_PLATFORM_ANDROID)  
#include <ftw.h>  
#endif 
image.png

二、在removeDirectory方法上添加

// removeDirectory  
namespace  
{  
#if (CC_TARGET_PLATFORM != CC_PLATFORM_ANDROID)  
 int unlink_cb(const char *fpath, const struct stat *sb, int typeflag,  
struct FTW *ftwbuf)  
 {  
 int rv = remove(fpath);  
 if (rv)  
 perror(fpath);  
 return rv;  
 }  
#endif  
}  
// removeDirectory           :  
bool FileUtils::removeDirectory(const std::string& path) {  
#if !defined(CC_TARGET_OS_TVOS)  
#if (CC_TARGET_PLATFORM != CC_PLATFORM_ANDROID)  
 if (nftw(path.c_str(), unlink_cb, 64, FTW_DEPTH | FTW_PHYS) == -1)  
  return  false;  
 else  
  return  true;  
#else  
 std::string command = "rm -r ";  
  // Path may include space.  
 command += "\"" + path + "\"";  
 if (system(command.c_str()) >= 0)  
  return  true;  
 else  
                         return  false;  
 #endif // (CC_TARGET_PLATFORM != CC_PLATFORM_ANDROID)  
#else  
  return  false;  
#endif // !defined(CC_TARGET_OS_TVOS)  
}  
image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,382评论 25 709
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,930评论 18 399
  • 人们向来重视结果,忽略过程。原因很简单:结果往往是很容易感受,而过程却被包裹在每天不经意的生活中。比如:考试...
    虚王阅读 2,999评论 0 1
  • 现在有很多文章如雨后春笋般冒了出了开来。 这当中的大多是鼓吹我们应该远离舒适区,逃离体制内,不要让体制限制了我们人...
    懵姨阅读 3,021评论 0 0
  • 习惯养成训练营第二周的课程刚好是在中秋节,也就是日历上的9月15,我是在当天就把第二章《如何抓住本质高效养成习惯》...
    7515b237f6ce阅读 825评论 0 1