代码之家  ›  专栏  ›  技术社区  ›  Berlin Brown

用Cygwin构建WindowsXP版iPhone

  •  1
  • Berlin Brown  · 技术社区  · 15 年前

    " Write native iPhone applications using Eclipse CDT How Windows and Linux developers can bypass the iPhone SDK and write iPhone apps using open source tools 作者:PJ Cabrera(PJ Cabrera@pobox.com)

    我按照文档中的说明进行操作,并认为我已经做了很长一段时间,但是我发现了一个错误,想知道您是否知道发生了什么。

    /制造工具链.sh

    test -d po || mkdir po
    checking whether getopt is declared... /cygdrive/c/downloads/mono/Mono-2.4/bin/m
    sgfmt --statistics -o po/be.gmo /cygdrive/c/projects/tools/home/iphone-2.0-toolc
    hain/src/gcc/libcpp/po/be.po
    c:\downloads\mono\Mono-2.4\bin\msgfmt.exe: error while opening "/cygdrive/c/proj
    ects/tools/home/iphone-2.0-toolchain/src/gcc/libcpp/po/be.po" for reading: No su
    ch file or directory
    make[2]: *** [po/be.gmo] Error 1
    make[2]: Leaving directory `/cygdrive/c/projects/tools/home/iphone-2.0-toolchain
    /build/gcc-4.2-iphone/libcpp'
    make[1]: *** [all-libcpp] Error 2
    make[1]: *** Waiting for unfinished jobs....
    no
    checking whether clock is declared... yes
    checking whether getpagesize is declared... yes
    checking whether clearerr_unlocked is declared... no
    checking whether feof_unlocked is declared... no
    checking whether ferror_unlocked is declared... no
    checking whether fflush_unlocked is declared... no
    checking whether fgetc_unlocked is declared... no
    checking whether fgets_unlocked is declared... no
    checking whether fileno_unlocked is declared... no
    checking whether fprintf_unlocked is declared... no
    checking whether fputc_unlocked is declared... no
    checking whether fputs_unlocked is declared... no
    checking whether fread_unlocked is declared... no
    checking whether fwrite_unlocked is declared... no
    checking whether getchar_unlocked is declared... yes
    checking whether getc_unlocked is declared... yes
    checking whether putchar_unlocked is declared... yes
    checking whether putc_unlocked is declared... yes
    checking whether getrlimit is declared... yes
    checking whether setrlimit is declared... yes
    checking whether getrusage is declared... yes
    checking whether ldgetname is declared... no
    checking whether times is declared... yes
    checking whether sigaltstack is declared... no
    checking for struct tms... yes
    checking for clock_t... yes
    checking for .preinit_array/.init_array/.fini_array support... no
    checking if mkdir takes one argument... no
    For  real value is
    For  real value is
    Using `/cygdrive/c/projects/tools/home/iphone-2.0-toolchain/src/gcc/gcc/config/arm/arm.c' for machine-specific logic.
    Using `/cygdrive/c/projects/tools/home/iphone-2.0-toolchain/src/gcc/gcc/config/'
     for machine-specific C++ logic.
    Using `/cygdrive/c/projects/tools/home/iphone-2.0-toolchain/src/gcc/gcc/config/a
    rm/arm.md' as machine description file.
    Using the following target machine macro files:
            /cygdrive/c/projects/tools/home/iphone-2.0-toolchain/src/gcc/gcc/config/arm/arm.h
            /cygdrive/c/projects/tools/home/iphone-2.0-toolchain/src/gcc/gcc/config/darwin.h
            /cygdrive/c/projects/tools/home/iphone-2.0-toolchain/src/gcc/gcc/config/darwin9.h
            /cygdrive/c/projects/tools/home/iphone-2.0-toolchain/src/gcc/gcc/config/arm/darwin.h
            /cygdrive/c/projects/tools/home/iphone-2.0-toolchain/src/gcc/gcc/config/arm/darwin.h
    Using `/cygdrive/c/projects/tools/home/iphone-2.0-toolchain/src/gcc/gcc/config/i386/xm-cygwin.h' as host machine macro file.
    
    Using host-cygwin.o for host machine hooks.
    checking whether NLS is requested... yes
    checking for catalogs to be installed...  be ca da de el es fr ja nl ru rw sr sv
     tr zh_CN zh_TW
    checking for library containing RegOpenKeyExA... no
    checking what assembler to use... /usr/local/bin/arm-apple-darwin9-as
    checking what linker to use... /usr/local/bin/arm-apple-darwin9-ld
    checking for arm-apple-darwin9-nm... /usr/local/bin/arm-apple-darwin9-nm
    checking what nm to use... /usr/local/bin/arm-apple-darwin9-nm
    checking for arm-apple-darwin9-objdump... no
    checking what objdump to use... not found
    checking assembler for .balign and .p2align... no
    checking assembler for .p2align with maximum skip... yes
    checking assembler for .literal16... yes
    checking assembler for working .subsection -1... no
    checking assembler for .weak... no
    checking assembler for .weakref... no
    checking assembler for .nsubspa comdat... no
    checking assembler for .hidden... no
    checking linker for .hidden support... no
    checking assembler for .sleb128 and .uleb128... no
    checking assembler for eh_frame optimization... no
    checking assembler for section merging support... no
    checking assembler for section merging support... (cached) no
    checking assembler for COMDAT group support... no
    checking assembler for COMDAT group support... no
    checking assembler for thread-local storage support... no
    checking linker -Bstatic/-Bdynamic option... no
    checking assembler for dwarf2 debug_line support... no
    checking assembler for buggy dwarf2 .file directive... no
    checking assembler for --gdwarf2 option... no
    checking assembler for --gstabs option... yes
    checking linker read-only and read-write section mixing... unknown
    checking linker PT_GNU_EH_FRAME support... no
    checking linker position independent executable support... no
    checking linker --as-needed support... no
    checking linker --sysroot support... no
    checking __stack_chk_fail in target C library... checking for __stack_chk_fail..
    . no
    no __stack_chk_fail on this target
    no
    Using ggc-page for garbage collection.
    checking whether to enable maintainer-specific portions of Makefiles... no
    Links are now set up to build a cross-compiler
     from i686-pc-cygwin to arm-apple-darwin9.
    updating cache ./config.cache
    configure: creating ./config.status
    config.status: creating Makefile
    config.status: creating gccbug
    config.status: creating mklibgcc
    config.status: creating libada-mk
    config.status: creating ada/Makefile
    config.status: creating auto-host.h
    config.status: executing default commands
    make[1]: Leaving directory `/cygdrive/c/projects/tools/home/iphone-2.0-toolchain
    /build/gcc-4.2-iphone'
    make: *** [all] Error 2
    
    This script requires that you enter the proper administrator password
    in order to install gcc-4.2-iphone in /usr/local
    
    make[1]: Entering directory `/cygdrive/c/projects/tools/home/iphone-2.0-toolchai
    n/build/gcc-4.2-iphone'
    
    /bin/sh /cygdrive/c/projects/tools/home/iphone-2.0-toolchain/src/gcc/mkinstalldirs /usr/local /usr/local
    
    make[2]: Entering directory `/cygdrive/c/projects/tools/home/iphone-2.0-toolchain/build/gcc-4.2-iphone/fixincludes'
    
    rm -rf /usr/local/libexec/gcc/arm-apple-darwin9/4.2.1/install-tools
    /bin/sh /cygdrive/c/projects/tools/home/iphone-2.0-toolchain/src/gcc/fixincludes
    /../mkinstalldirs /usr/local/libexec/gcc/arm-apple-darwin9/4.2.1/install-tools
    
    mkdir -p -- /usr/local/libexec/gcc/arm-apple-darwin9/4.2.1/install-tools
    /bin/sh /cygdrive/c/projects/tools/home/iphone-2.0-toolchain/src/gcc/fixincludes
    /../mkinstalldirs /usr/local/lib/gcc/arm-apple-darwin9/4.2.1/install-tools/include
    /usr/bin/install -c -m 644 /cygdrive/c/projects/tools/home/iphone-2.0-toolchain/
    src/gcc/fixincludes/README-fixinc \
              /usr/local/lib/gcc/arm-apple-darwin9/4.2.1/install-tools/include/READM
    E
    /usr/bin/install -c fixinc.sh /usr/local/libexec/gcc/arm-apple-darwin9/4.2.1/ins
    tall-tools/fixinc.sh
    /usr/bin/install -c fixincl.exe \
              /usr/local/libexec/gcc/arm-apple-darwin9/4.2.1/install-tools/fixincl.e
    xe
    /usr/bin/install -c mkheaders /usr/local/libexec/gcc/arm-apple-darwin9/4.2.1/ins
    tall-tools/mkheaders
    make[2]: Leaving directory `/cygdrive/c/projects/tools/home/iphone-2.0-toolchain
    /build/gcc-4.2-iphone/fixincludes'
    
    make[2]: Entering directory `/cygdrive/c/projects/tools/home/iphone-2.0-toolchain/build/gcc-4.2-iphone/gcc'
    test -d po || mkdir po
    /cygdrive/c/downloads/mono/Mono-2.4/bin/msgfmt --statistics -o po/be.gmo /cygdrive/c/projects/tools/home/iphone-2.0-toolchain/src/gcc/gcc/po/be.po
    c:\downloads\mono\Mono-2.4\bin\msgfmt.exe: error while opening "/cygdrive/c/projects/tools/home/iphone-2.0-toolchain/src/gcc/gcc/po/be.po" for reading: No such
    file or directory
    make[2]: *** [po/be.gmo] Error 1
    make[2]: Leaving directory `/cygdrive/c/projects/tools/home/iphone-2.0-toolchain
    /build/gcc-4.2-iphone/gcc'
    make[1]: *** [install-gcc] Error 2
    make[1]: Leaving directory `/cygdrive/c/projects/tools/home/iphone-2.0-toolchain
    /build/gcc-4.2-iphone'
    make: *** [install] Error 2
    

    我也觉得奇怪,msgfmt会被执行,从Mono?为什么这个版本使用mono或.net?

    “g++(GCC)3.4.4(cygming special,gdc 0.12,使用dmd 0.125) 版权所有(C)2004自由软件基金会。 这是免费软件;请参阅复制条件的源代码。没有

    1 回复  |  直到 15 年前
        1
  •  4
  •   Brock Woolf    15 年前

    从上面的代码来看,您正在使用cygwin编译一些Windows工具。

    /cygdrive/c/projects/tools/home/iphone-2.0-toolchain/src/gcc/libcpp/po/be.p
    

    它似乎在寻找libcpp的某些部分,却找不到。您可以通过重新运行Cygwin安装程序并选择 libcpp公司 当你这样做的时候。

    另外,我建议不要在Windows上运行iPhone dev工具。这与你在MacOSX上获得的体验相去甚远,而且你会遇到上面提到的许多挫折。

    我的建议是: 如果你不想花太多钱,买一台Mac mini吧,这些工具都是Mac自带的,你可以在编写iPhone应用程序时获得乐趣,而不必担心自己的开发环境何时会崩溃。此外,当某些东西不能正常工作时,您不必担心它是您的被黑客攻击的开发环境还是您的代码有问题。

    你也无法将你的应用程序提交到iPhone AppStore,而苹果真的不愿意这么做,所以如果他们发现你这样做,你就不会得到苹果或者其他iPhone开发人员的任何帮助。

    祝你好运!