iOS:Xcode的beta下编译低版本项目时,出现的Link错误( "_fwrite$UNIX2003", referenced from:)

开发的项目多了,对于一个i386的错误,处理起来应该是得心应手的,可是仔细看来,跟之前遇到i386的错误还不大一样,直接搜i386是搜不到该问题解决的方法,你要是搜“Undefined symbols for architecture i386”会搜出一些答案,但也不是很多,并且能不能解决当前遇到的问题,还得自己试过后才知道行还是不行。这里我就给大家说一下我当时搜到的一些解决方法:

1、缺少类库,自己项目缺不缺少类库自己还是知道的,看上面的错误也像是缺少类库,所以这个答案直接抛 弃掉

2、这个就需要自己动手操作一下,这里我就简单说下步骤,截图嘛,最后也没有帮我解决问题,所以复述下步骤,有空的时候可以试下:点击Xcode左栏项目工程:Target—>Build Settings—>Apple LLVM 6.0 - language - c++到此,修改c++ Standard Library 属性为 libstdc++(GNU C++ standard library)

以上两中方法都没能真正的解决问题,难道这个问题就没有解决办法了,别急,下面就是解决问题的方法了

出现的错误截图:

解决办法:

首先在AppDelegate.h文件中添加如下代码:

#ifdef DEBUG
    FILE *fopen$UNIX2003(const char *filename, const char *mode);
    size_t fwrite$UNIX2003(const void *ptr, size_t size, size_t nitems, FILE *stream);
#endif

再在AppDelegate.m文件中添加如下代码:

#ifdef DEBUG
    FILE *fopen$UNIX2003(const char *filename, const char *mode) {
        return fopen(filename, mode);
    }
    size_t fwrite$UNIX2003(const void *ptr, size_t size, size_t nitems, FILE *stream) {
        return fwrite(ptr, size, nitems, stream);
    }
#endif

在指定的类中添加以上代码,问题就解决了。

这可能是Xcode的一个bug,升级到正式版,可能就不存在这个问题。

参考:http://blog.sina.com.cn/s/blog_b2b0ab4b0102v8k7.html

时间: 2024-11-02 14:02:14

iOS:Xcode的beta下编译低版本项目时,出现的Link错误( "_fwrite$UNIX2003", referenced from:)的相关文章

vs2012打开低版本项目时 出现vs2012警告未能加载包“visual c++ package 解决办法

vs2012 打开 vs2010 项目时 提示的 错误信息. 解决办法 是下载一个 vs2012的 一个补丁包 http://www.microsoft.com/en-us/download/details.aspx?id=36020 初次安装成功后,调试 无法启用,关闭,重新打开项目 即可解决! ======ok. [在此谢谢网上提供解决方案的朋友们,谢谢你们!] vs2012打开低版本项目时 出现vs2012警告未能加载包"visual c++ package 解决办法

在Xcode 6 beta里编译Cocos2d-x iOS项目时失败

转载 在Xcode 6 beta里编译Cocos2d-x iOS项目时可能会失败,提示如下错误: Undefined symbols for architecture i386: "_fwrite$UNIX2003", referenced from: _unixErrorHandler in libcocos2dx iOS.a(tif_unix.o) _unixWarningHandler in libcocos2dx iOS.a(tif_unix.o) _empty_output_

iOS: El Capitan Beta 下 Xcode6.4 不显示Scheme菜单

当我用El Capitan Beta 下 Xcode6.4版本时候出现了问题 常用的Scheme 选择版本不见了 而在Xcode 7.0 beta 6中显示有 简直就是坑,经过查资料其实是一个bug ,可以在product-->destination 下选择 参考资料:http://stackoverflow.com/questions/32276768/xcode-6-4-scheme-option-disappeared-in-el-capitan-beta

【NS2】在linux下安装低版本GGC

1.下载安装包,cd到文件所在目录 sudo dpkg -i gcc41-compat-4.1.2-ubuntu1210_i386.deb g++41-compat-4.1.2_i386.deb 2.查看安装到系统的gcc ls /usr/bin/gcc* 3. 下载完包之后,建议是直接sudo dkpg -i *.deb这样安装 由于gcc安装互相有版本的支持,有很折腾的顺序要求,好像这样安装系统会自动排列安装的的顺序,比较方便 安装完之后需要设置一下,把默认的gcc和g++版本给改下来(PS

quick-cocos2d-x如何在windows下编译安卓版本

1.下载安卓sdk,设置好环境变量ANDROID_SDK_ROOT 比如:C:\android\adt\sdk 2.下载ndk,设置好环境变量,主要是ANDROID_NDK_ROOT 比如:C:\android\adt\android-ndk-r10d 3.安装好java环境,设置好JAVA_HOME环境变量 比如:C:\Program Files (x86)\Java\jdk1.7.0_40 Path环境变量增加%JAVA_HOME%\bin 4.运行build_native.bat 5.可能

react-native 0.31.0 低版本在Android上报网络的错误错

修改工程里 DashengChefuMerchant/node_modules/react-native/Libraries/Utilities/UIManager.js if (Platform.OS === 'ios')里面的 的代码为 var normalizePrefix = (moduleName: string)=>{ return moduleName.replace(/^(RCT|RK)/, '');}

ArcGIS 10.3 AddIN编译旧版本项目问题

ArcGIS 10.1的AddIN项目,后来ArcGIS版本升级为10.3 AddIN项目想做一些细节调整,结果出生成时没有生成esriaddin文件,ArcMap中AddIn Manager中也没有该插件. 后来Google了一下,网址在这里 大意就是:问题是由于ESRI对VS2010和VS2012中SDK命名不一致造成的 解决方法是: 用记事本打开.csproj项目文件,将其中的路径更改为正确的路径即可, 如 <Import Project="$(MSBuildExtensionsPa

linux下遇到插拨serial TLL时内核提示的错误信息

SysRq : HELP : loglevel(0-9) reBoot Crash terminate-all-tasks(E) memory-full-oom-kill(F) kill-all-tasks(I) thaw-filesystems(J) saK show-memory-usage(M) nice-all-RT-tasks(N) powerOff show-registers(P) show-all-timers(Q) unRaw Sync show-task-states(T)

使用cmake编译C语言项目时使用第三方库

关于cmake的安装,CMakeLists.txt的语法规则,CMakeLists.txt的各种配置选项等复杂而专业的知识,限于本人能力,这里不再说明 演示使用glibc2.0库 一 项目目录 [email protected]:~/code/cmake/eclipse/HelloCMake$ tree . ├── bin ├── CMakeLists.txt ├── include │   ├── hello.h │   └── sum.h ├── lib └── src ├── CMakeL