Archived

This forum has been archived. Please start a new discussion on GitHub.

Facing various issues while building IceTouch - 3.6

Hi, I'm unable to build Ice Touch on my machine, not sure what exactly the issue is. I'm facing this error at the moment.

making COMPILE_FOR_IPHONE=yes all in src
making all in translators
make[2]: *** No rule to make target /opt/Ice-3.7.3/cpp/src/slice2cpp/Main.cpp', needed bymacosx/slice2cpp/Main_slice2cpp_cpp.o'. Stop.
make[1]: *** [all] Error 1
make: *** [all] Error 1

Cloned from this link - https://github.com/zeroc-ice/icetouch

Comments

  • xdm
    xdm La Coruña, Spain

    Hi,

    Seems that you have set ICE_HOME to /op/Ice-3.7.3 you must not set ICE_HOME when building Ice Touch from sources.

    Ice Touch was based on Ice 3.6, and later integrated on Ice 3.7, If you are starting a new iOS project you might consider using Ice for Swift instead. Ice for Swift is part of the upcoming 3.7.3 released.

  • benoit
    benoit Rennes, France

    You should also make sure to update the submodule:

    cd icetouch
    git submodule update 
    

    This will pull the ice submodule in the icetouch/ice directory.

    As José mentioned, I strongly recommend to use Ice 3.7 instead. Ice Touch 3.6 doesn't support latest Xcode and iOS versions, you will need to use Ice 3.7 if you want to support these.

    See Using the macOS distribution from the Ice 3.7 documentation for information on installing Ice and using the Xcode SDKs to develop iOS applications.

    Note that we now also provide an Ice for Swift mapping which allows developing iOS applications with Swift.

  • Here is the Output after disabling ICE_HOME environmental variable as pasted below. Also, /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/stdlib.h:62:

    It seems that Mac OSX toolchain is chosen even after COMPILE_FOR_IPHONE = yes is chosen.

    GC02Z2DM0LVCFE:icetouch-3.6 deepanshusingh$ make
    if [ ! -d lib ] || [ ! -d lib/IceTouch ]; \
    then \
    mkdir lib ; chmod a+rx lib ; \
    mkdir lib/IceTouch ; chmod a+rx lib/IceTouch ; \
    for sdk in lib/IceTouch/Cpp lib/IceTouch/ObjC; \
    do \
    mkdir $sdk ; chmod a+rx $sdk ;\
    mkdir $sdk/bin ; chmod a+rx $sdk/bin ;\
    mkdir $sdk/slice ; chmod a+rx $sdk/slice ;\
    for platform in macosx iphoneos iphonesimulator ; \
    do \
    platform_sdk=$sdk/$platform.sdk ;\
    mkdir $platform_sdk ; chmod a+rx $platform_sdk ;\
    mkdir $platform_sdk/usr ; chmod a+rx $platform_sdk/usr ;\
    mkdir $platform_sdk/usr/local ; chmod a+rx $platform_sdk/usr/local ;\
    mkdir $platform_sdk/usr/local/include ; chmod a+rx $platform_sdk/usr/local/include ;\
    mkdir $platform_sdk/usr/local/include/IceUtil ; chmod a+rx $platform_sdk/usr/local/include/IceUtil ;\
    mkdir $platform_sdk/usr/local/include/Ice ; chmod a+rx $platform_sdk/usr/local/include/Ice ;\
    mkdir $platform_sdk/usr/local/include/IceSSL ; chmod a+rx $platform_sdk/usr/local/include/IceSSL ;\
    mkdir $platform_sdk/usr/local/include/Glacier2 ; chmod a+rx $platform_sdk/usr/local/include/Glacier2 ;\
    mkdir $platform_sdk/usr/local/include/IceGrid ; chmod a+rx $platform_sdk/usr/local/include/IceGrid ;\
    mkdir $platform_sdk/usr/local/include/IceStorm ; chmod a+rx $platform_sdk/usr/local/include/IceStorm ;\
    mkdir $platform_sdk/usr/local/lib ; chmod a+rx $platform_sdk/usr/local/lib ;\
    cp -fp ./config/$platform-SDKSettings.plist $platform_sdk/SDKSettings.plist ;\
    chmod a+r $platform_sdk/SDKSettings.plist ;\
    done ;\
    for subdir in ./ice/slice/* ; \
    do \
    echo "Copying $subdir to $sdk/slice..." ; \
    cp -fpr $subdir $sdk/slice ; \
    done ;\
    done; \
    else \
    touch lib/IceTouch; \
    fi
    making COMPILE_FOR_IPHONE=yes all in src
    making all in translators
    xcrun clang++ -Imacosx/include -I../../ice/cpp/src -I../../ice/cpp/include -mmacosx-version-min=10.14.1 -pthread -fvisibility=hidden -g -Wall -arch armv7 -arch armv7s -arch arm64 -c ../../ice/cpp/src/slice2cpp/Main.cpp -o macosx/slice2cpp/Main_slice2cpp_cpp.o
    In file included from ../../ice/cpp/src/slice2cpp/Main.cpp:10:
    In file included from ../../ice/cpp/include/IceUtil/Options.h:13:
    In file included from ../../ice/cpp/include/IceUtil/Config.h:18:
    In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/stdlib.h:94:
    In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/stdlib.h:62:
    /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/sys/cdefs.h:784:2: error: Unsupported architecture

    error Unsupported architecture

    ^
    In file included from ../../ice/cpp/src/slice2cpp/Main.cpp:10:
    In file included from ../../ice/cpp/include/IceUtil/Options.h:13:
    In file included from ../../ice/cpp/include/IceUtil/Config.h:18:
    In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/stdlib.h:94:
    In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/stdlib.h:64:
    In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/_types.h:27:
    In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/sys/_types.h:33:
    /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/machine/_types.h:34:2: error: architecture not supported

    error architecture not supported

    ^
    In file included from ../../ice/cpp/src/slice2cpp/Main.cpp:10:
    In file included from ../../ice/cpp/include/IceUtil/Options.h:13:
    In file included from ../../ice/cpp/include/IceUtil/Config.h:18:
    In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/stdlib.h:94:
    In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/stdlib.h:64:
    In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/_types.h:27:
    /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/sys/_types.h:55:9: error: unknown type name '__int64_t'
    typedef __int64_t __darwin_blkcnt_t; /* total blocks */
    ^
    /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/sys/_types.h:62:9: error: unknown type name '__uint64_t'
    typedef __uint64_t __darwin_ino64_t; /* [???] Used for 64 bit inodes */
    ^
    /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/sys/_types.h:68:9: error: unknown type name '__darwin_natural_t'
    typedef __darwin_natural_t __darwin_mach_port_name_t; /* Used by mach */
    ^
    /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/sys/_types.h:75:9: error: unknown type name '__uint32_t'
    typedef __uint32_t __darwin_uid_t; /* [???] user IDs */
    ^
    /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/sys/_types.h:76:9: error: unknown type name '__uint32_t'
    typedef __uint32_t __darwin_useconds_t; /* [???] microseconds */
    ^
    In file included from ../../ice/cpp/src/slice2cpp/Main.cpp:10:
    In file included from ../../ice/cpp/include/IceUtil/Options.h:13:
    In file included from ../../ice/cpp/include/IceUtil/Config.h:18:
    In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/stdlib.h:94:
    In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/stdlib.h:66:
    In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/sys/wait.h:109:
    In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/sys/signal.h:82:
    /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/machine/signal.h:34:2: error: architecture not supported

    error architecture not supported

    ^
    In file included from ../../ice/cpp/src/slice2cpp/Main.cpp:10:
    In file included from ../../ice/cpp/include/IceUtil/Options.h:13:
    In file included from ../../ice/cpp/include/IceUtil/Config.h:18:
    In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/stdlib.h:94:
    In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/stdlib.h:66:
    In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/sys/wait.h:109:
    In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/sys/signal.h:146:
    /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/machine/_mcontext.h:31:2: error: architecture not supported

    error architecture not supported

    ^
    In file included from ../../ice/cpp/src/slice2cpp/Main.cpp:10:
    In file included from ../../ice/cpp/include/IceUtil/Options.h:13:
    In file included from ../../ice/cpp/include/IceUtil/Config.h:18:
    In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/stdlib.h:94:
    In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/stdlib.h:66:
    In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/sys/wait.h:109:
    In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/sys/signal.h:150:
    In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/sys/_types/_sigaltstack.h:40:
    /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/machine/types.h:37:2: error: architecture not supported

    error architecture not supported

    ^
    fatal error: too many errors emitted, stopping now [-ferror-limit=]
    20 errors generated.
    make[2]: *** [macosx/slice2cpp/Main_slice2cpp_cpp.o] Error 1
    make[1]: *** [all] Error 1

    make: *** [all] Error 1

  •     Here's the modified config/Make.rules file that I used :
    
    
    
        # **********************************************************************
        #
        # Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
        #
        # This copy of Ice Touch is licensed to you under the terms described
        # in the ICE_LICENSE file included in this distribution.
        #
        # **********************************************************************
    
        #
        # Select an installation base directory. The directory will be created
        # if it does not exist.
        #
        prefix          ?= /opt/IceTouch-$(VERSION)
    
        #
        # Xcode root directory. If you have several Xcode versions installed,
        # choose the version you want to use to build Ice Touch. The default
        # is the one returned by "xcode-select -print-path".
        #
        XCODE_PATH      = /Applications/Xcode.app
    
        #
        # If MCPP is not installed in a standard location where the compiler
        # can find it, set MCPP_HOME to the Mcpp installation directory.
        #
        MCPP_HOME       = /usr/local/Cellar/mcpp
    
        #
        # Define OPTIMIZE_SIZE as yes if you want to build with minimal size.
        # Define OPTIMIZE_SPEED as yes if you want to build with maximum speed.
        #
        # These options are mutually exclusive. If neither is set, Ice Touch
        # is built with debug information.
        #
        #OPTIMIZE_SIZE  = yes
        #OPTIMIZE_SPEED = yes
    
        #
        # If you don't define COMPILE_FOR_IPHONE, COMPILE_FOR_IPHONE_SIMULATOR or
        # COMPILE_FOR_OSX below, the default is to build for all the platforms.
        #
    
        #
        # Compile the Xcode SDK for the iPhone platform
        #
        COMPILE_FOR_IPHONE              = yes
    
        #
        # Compile the Xcode SDK for the iPhone simulator platform
        #
        #COMPILE_FOR_IPHONE_SIMULATOR   = yes
    
        #
        # Compile the Xcode SDK for OS X platform
        #
        #COMPILE_FOR_OSX                = yes
    
        #
        # The minimum SDK version supported by targets, the default is 7.1 for iOS and
        # 10.9 for OS X.
        #
        OSX_TARGET_MIN_SDK_VERSION      = 10.14.1
        IOS_TARGET_MIN_SDK_VERSION      = 12.1
    
        #
        # The build architectures. The default is to build fat binaries with all
        # supported architectures for release builds, and single arch binaries
        # for debug builds. The list of supported architecturs depends of the
        # target platform.
        #
        # OS X:
        #
    
  • Here's the Makefile : (Only one line has been shifted from it's original order from the original Makefile and it is highlighted here, rest remains same as the original file).

    **********************************************************************

    #

    Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.

    #

    This copy of Ice Touch is licensed to you under the terms described

    in the ICE_LICENSE file included in this distribution.

    #

    **********************************************************************

    top_srcdir = .

    **include $(top_srcdir)/config/Make.rules ** #ONLY THIS LINE HAS BEEN SHIFTED FROM BELOW NEXT
    #LINE TO HERE, REST REMAINS SAME.

    #

    Figure out the platforms to build, if empty we'll build all the platforms.

    #
    PLATFORMS := $(strip $(foreach f,IPHONE IPHONE_SIMULATOR OSX,$(if $(findstring yes,$(COMPILE_FOR_$f)),$f)))

    include $(top_srcdir)/config/Make.rules

    ifeq ($(USE_BIN_DIST),yes)
    SUBDIRS = test
    else
    SUBDIRS = src test
    endif

    INSTALL_SUBDIRS =

    install::
    @for subdir in $(INSTALL_SUBDIRS); \
    do \
    if test ! -d $$subdir ; \
    then \
    echo "Creating $$subdir..." ; \
    mkdir -p $$subdir ; \
    chmod a+rx $$subdir ; \
    fi ; \
    done
    ifeq ($(create_runpath_symlink),yes)
    @if test -h $(embedded_runpath_prefix) ; \
    then \
    if \rm -f $(embedded_runpath_prefix) 2>/dev/null; \
    then echo "Removed symbolic link $(embedded_runpath_prefix)"; fi \
    fi
    @if ! test -d $(embedded_runpath_prefix) ; \
    then \
    if ln -s $(prefix) $(embedded_runpath_prefix) 2>/dev/null; \
    then echo "Created symbolic link $(embedded_runpath_prefix) --> $(prefix)"; fi \
    fi
    endif

    ifneq ($(USE_BIN_DIST),yes)
    install all:: sdks
    endif

    sdks:
    if [ ! -d lib ] || [ ! -d lib/IceTouch ]; \
    then \
    $(call mkdir,lib) ; \
    $(call mkdir,lib/IceTouch) ; \
    for sdk in lib/IceTouch/Cpp lib/IceTouch/ObjC; \
    do \
    $(call mkdir,$$sdk) ;\
    $(call mkdir,$$sdk/bin) ;\
    $(call mkdir,$$sdk/slice) ;\
    for platform in macosx iphoneos iphonesimulator ; \
    do \
    platform_sdk=$$sdk/$$platform.sdk ;\
    $(call mkdir,$$platform_sdk) ;\
    $(call mkdir,$$platform_sdk/usr) ;\
    $(call mkdir,$$platform_sdk/usr/local) ;\
    $(call mkdir,$$platform_sdk/usr/local/include) ;\
    $(call mkdir,$$platform_sdk/usr/local/include/IceUtil) ;\
    $(call mkdir,$$platform_sdk/usr/local/include/Ice) ;\
    $(call mkdir,$$platform_sdk/usr/local/include/IceSSL) ;\
    $(call mkdir,$$platform_sdk/usr/local/include/Glacier2) ;\
    $(call mkdir,$$platform_sdk/usr/local/include/IceGrid) ;\
    $(call mkdir,$$platform_sdk/usr/local/include/IceStorm) ;\
    $(call mkdir,$$platform_sdk/usr/local/lib) ;\
    $(INSTALL_DATA) $(top_srcdir)/config/$$platform-SDKSettings.plist $$platform_sdk/SDKSettings.plist ;\
    chmod a+r $$platform_sdk/SDKSettings.plist ;\
    done ;\
    for subdir in $(ice_dir)/slice/* ; \
    do \
    echo "Copying $$subdir to $$sdk/slice..." ; \
    cp -fpr $$subdir $$sdk/slice ; \
    done ;\
    done; \
    else \
    touch lib/IceTouch; \
    fi

    ifeq ($(PLATFORMS),)
    clean::
    rm -rf lib
    endif

    $(EVERYTHING)::
    @for subdir in $(SUBDIRS); \
    do \
    for platform in $(if $(PLATFORMS),$(PLATFORMS),OSX IPHONE IPHONE_SIMULATOR); \
    do \
    echo "making COMPILE_FOR_$$platform=yes $@ in $$subdir"; \
    ( cd $$subdir && $(MAKE) -f Makefile $@ COMPILE_FOR_$$platform=yes ) || exit 1; \
    done; \
    done

    tests:
    for platform in $(if $(PLATFORMS),$(PLATFORMS),OSX IPHONE IPHONE_SIMULATOR); \
    do \
    echo "making COMPILE_FOR_$$platform=yes"; \
    ( cd test && $(MAKE) -f Makefile COMPILE_FOR_$$platform=yes ) || exit 1; \
    done; \

    ifeq ($(COMPILE_FOR_OSX),yes)
    test::
    @python $(top_srcdir)/allTests.py
    endif

    install::
    @if test ! -d $(prefix) ; \
    then \
    echo "Creating $(prefix)..." ; \
    $(call mkdir,$(prefix)) ; \
    fi
    @if test ! -f $(prefix)/ICE_LICENSE ; \
    then \
    $(call installdata,$(top_srcdir)/ICE_LICENSE,$(prefix)) ; \
    fi
    @if test ! -f $(prefix)/ICE_LICENSE ; \
    then \
    $(call installdata,$(ice_dir)/ICE_LICENSE,$(prefix)) ; \
    fi
    @if test ! -f $(prefix)/LICENSE ; \
    then \
    $(call installdata,$(ice_dir)/LICENSE,$(prefix)) ; \
    fi
    @if test ! -d $(prefix)/lib ; \
    then \
    $(call mkdir,$(prefix)/lib); \
    fi
    @if test ! -d $(prefix)/lib/IceTouch ; \
    then \
    $(call mkdir,$(prefix)/lib/IceTouch); \
    fi
    if [ -d $(prefix)/lib/IceTouch/Cpp ]; \
    then \
    rm -rf $(prefix)/lib/IceTouch/Cpp; \
    fi
    cp -fpr $(top_srcdir)/lib/IceTouch/Cpp $(prefix)/lib/IceTouch/Cpp
    if [ -d $(prefix)/lib/IceTouch/ObjC ]; \
    then \
    rm -rf $(prefix)/lib/IceTouch/ObjC; \
    fi
    cp -fpr $(top_srcdir)/lib/IceTouch/ObjC $(prefix)/lib/IceTouch/ObjC

    ``

  • @benoit tried what you said "git submodule update" still facing kind of same issue.

  • Also, here's the original makefile. I see some conditions whether you want to compile for everything(IPHONE, IPHONE_SIMULATOR as well as Mac OS) or for Mac OS but I don't see anything that says if you want to compile only for IPHONE.

    Any comments on this?

    GC02Z2DM0LVCFE:icetouch deepanshusingh$ vi Makefile

                for subdir in $(ice_dir)/slice/* ; \
                do \
                    echo "Copying $$subdir to $$sdk/slice..." ; \
                    cp -fpr $$subdir $$sdk/slice ; \
                done ;\
            done; \
    else \
                touch lib/IceTouch; \
        fi
    

    ifeq ($(PLATFORMS),)
    clean::
    rm -rf lib
    endif

    $(EVERYTHING)::
    @for subdir in $(SUBDIRS); \
    do \
    for platform in $(if $(PLATFORMS),$(PLATFORMS),OSX IPHONE IPHONE_SIMULATOR); \
    do \
    echo "making COMPILE_FOR_$$platform=yes $@ in $$subdir"; \
    ( cd $$subdir && $(MAKE) -f Makefile $@ COMPILE_FOR_$$platform=yes ) || exit 1; \
    done; \
    done

    tests:
    for platform in $(if $(PLATFORMS),$(PLATFORMS),OSX IPHONE IPHONE_SIMULATOR); \
    do \
    echo "making COMPILE_FOR_$$platform=yes"; \
    ( cd test && $(MAKE) -f Makefile COMPILE_FOR_$$platform=yes ) || exit 1; \
    done; \

    ifeq ($(COMPILE_FOR_OSX),yes)
    test::
    @python $(top_srcdir)/allTests.py
    endif

    install::
    @if test ! -d $(prefix) ; \
    then \
    echo "Creating $(prefix)..." ; \
    $(call mkdir,$(prefix)) ; \
    fi
    @if test ! -f $(prefix)/ICE_LICENSE ; \
    then \
    $(call installdata,$(top_srcdir)/ICE_LICENSE,$(prefix)) ; \
    fi
    @if test ! -f $(prefix)/ICE_LICENSE ; \
    then \
    $(call installdata,$(ice_dir)/ICE_LICENSE,$(prefix)) ; \
    fi
    @if test ! -f $(prefix)/LICENSE ; \
    then \
    $(call installdata,$(ice_dir)/LICENSE,$(prefix)) ; \
    fi
    @if test ! -d $(prefix)/lib ; \
    then \
    $(call mkdir,$(prefix)/lib); \
    fi
    @if test ! -d $(prefix)/lib/IceTouch ; \
    then \
    $(call mkdir,$(prefix)/lib/IceTouch); \
    fi
    if [ -d $(prefix)/lib/IceTouch/Cpp ]; \
    then \
    rm -rf $(prefix)/lib/IceTouch/Cpp; \
    fi
    cp -fpr $(top_srcdir)/lib/IceTouch/Cpp $(prefix)/lib/IceTouch/Cpp
    if [ -d $(prefix)/lib/IceTouch/ObjC ]; \
    then \
    rm -rf $(prefix)/lib/IceTouch/ObjC; \
    fi
    cp -fpr $(top_srcdir)/lib/IceTouch/ObjC $(prefix)/lib/IceTouch/ObjC

  • benoit
    benoit Rennes, France

    This error is most likely caused because you've uncommented ARCHFLAGS in Make.rules. I see that you are trying to target macOS 10.14 or iOS 12 with Ice Touch. However these platforms aren't support with Ice Touch. Furthermore it only supports Xcode 6 which is probably not what you are using. See https://zeroc.com/downloads/archive/icetouch/1.3.3/platforms

    Can you switch to Ice 3.7 instead which provides support for iOS development with C++, Objective-C and Swift? Or is there a specific reason why want to continue using Ice Touch instead?

  • We're using Ice 3.7.3 with cpp98 for MacOS.
    Now we want to run this on iOS, so if we just change the software kit to iOS it'll work, is this what you're saying?

  • If you already have a pre-built IOS C++ static libraries and dependencies for ice 3.7.3 which we can link to “bidirectional” project present in the ice-demos and run on IOS devices, can you please share?

    Also, I'm building Ice 3.7.3 from here - https://github.com/zeroc-ice/ice/blob/3.7/cpp/README.md
    While running "make CONFIGS=all PLATFORMS=all -j8" under "build configuration & platforms", I'm stuck with this issue, any alternative to bypass this :

    ** BUILD FAILED **

    make: *** [test/ios/controller[iphoneos-cpp11-xcodesdk]] Error 65
    make: *** Waiting for unfinished jobs....
    error: No profiles for 'com.zeroc.Cpp98-Test-Controller' were found: Xcode couldn't find any iOS App Development provisioning profiles matching 'com.zeroc.Cpp98-Test-Controller'. Automatic signing is disabled and unable to generate a profile. To enable automatic signing, pass -allowProvisioningUpdates to xcodebuild. (in target 'C++98 Test Controller')
    note: Using new build systemnote: Planning buildnote: Constructing build description
    ** BUILD FAILED **

  • bernard
    bernard Jupiter, FL

    We will release Ice 3.7.3 very soon, but it's not released yet. The current version is Ice 3.7.2, and when you install it (with brew install ice), you get the static libraries for iOS, and many other files.

    These static libraries are in /usr/local/opt/ice/sdk/<platform>.sdk, for example:
    /usr/local/opt/ice/sdk/iphoneos.sdk/usr/lib/libIce.a

    You can also build Ice C++98 from sources if you like with:

    make CONFIGS=xcodesdk PLATFORMS=iphoneos -j8 srcs
    

    "srcs" means you're building only the sources. If you want to build the test suite as well, I suggest to first open the C++ Test Controller project in Xcode and adjust Signing (in Signing & Capabilities).

    Then, build all:

    make CONFIGS=xcodesdk PLATFORMS=iphoneos -j8
    

    Best regards,
    Bernard

  • Thank you, I'm able to build Ice version 3.7 for iOS. I built it with this command - "make CONFIGS=xcodesdk PLATFORMS=iphoneos -j8 srcs"

    After successfully built I got these ".a" library files :

    IceLocatorDiscovery, Glacier2, Glacier2ObjC, Ice, IceDiscovery, IceGrid, IceGridObjC, IceIAP, IceIAPObjC, IceStormObjC, IceStorm, IceSSLObjC, IceSSL, IceObjC

    And these are the folders generated in the include folder:

    Glacier2, IceGrid, IceSSL, IceUtil, Ice, IceIAP, IceStorm, objc

    Now upon building a project using QT with c++, I'm facing this linker error :

    Undefined symbols for architecture arm64:
    "_kCFGetAddrInfoFailureKey", referenced from:
    IceObjC::StreamTransceiver::checkErrorStatus(__CFWriteStream*, __CFReadStream*, char const*, int) in libIce.a(StreamTransceiver.o)
    "_CFHostCreateWithName", referenced from:
    IceObjC::StreamConnector::connect() in libIce.a(StreamConnector.o)
    "_CFStreamCreatePairWithSocketToCFHost", referenced from:
    IceObjC::StreamConnector::connect() in libIce.a(StreamConnector.o)
    "_kCFStreamNetworkServiceType", referenced from:
    IceObjC::Instance::setupStreams(__CFReadStream*, __CFWriteStream*, bool, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) const in libIce.a(StreamEndpointI.o)
    "_kCFStreamNetworkServiceTypeVoIP", referenced from:
    IceObjC::Instance::setupStreams(__CFReadStream*, __CFWriteStream*, bool, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) const in libIce.a(StreamEndpointI.o)
    "_BZ2_bzBuffToBuffDecompress", referenced from:
    Ice::ConnectionI::doUncompress(Ice::InputStream&, Ice::InputStream&) in libIce.a(ConnectionI.o)
    "_BZ2_bzBuffToBuffCompress", referenced from:
    Ice::ConnectionI::doCompress(Ice::OutputStream&, Ice::OutputStream&) in libIce.a(ConnectionI.o)
    ld: symbol(s) not found for architecture arm64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)

    ** BUILD FAILED **

    The following build commands failed:
    Ld Debug-iphoneos/client.app/client normal arm64
    (1 failure)
    make: *** [xcodebuild-debug-device] Error 65
    18:41:34: The process "/usr/bin/make" exited with code 2.
    Error while building/deploying project Bi_directional (kit: Qt 5.12.4 for iOS)
    When executing step "Make"

  • benoit
    benoit Rennes, France

    See https://doc.zeroc.com/ice/3.7/release-notes/using-the-macos-binary-distribution#id-.UsingthemacOSBinaryDistributionv3.7-UsingXcodeSDKs

    You need to make sure to link your application with the CFNetwork.framework framework and add -lbz2 to the linker options.