Results 1 to 5 of 5

Thread: Failed to compile on OS X 10.6

  1. #1
    victor is offline Registered User
    Name: Victor Powell
    Organization: Personal
    Project: ICE to Node.JS
    Join Date
    Nov 2011
    Posts
    3

    Failed to compile on OS X 10.6

    I get this error after trying to compile ICE for OS X 10.6. Any guesses as to a possible fix?


    c++ -dynamiclib -g -Wall -D_REENTRANT -L../../lib -o ../../lib/libIce.3.4.2.dylib -install_name /opt/Ice-3.4/lib/libIce.34.dylib Acceptor.o Application.o Base64.o Buffer.o BasicStream.o BuiltinSequences.o CommunicatorI.o Communicator.o ConnectRequestHandler.o ConnectionFactory.o ConnectionI.o ConnectionMonitor.o Connection.o ConnectionRequestHandler.o Connector.o Current.o DefaultsAndOverrides.o Direct.o DispatchInterceptor.o DynamicLibrary.o Endpoint.o EndpointFactoryManager.o EndpointFactory.o EndpointI.o EndpointTypes.o EventHandler.o Exception.o FacetMap.o FactoryTable.o FactoryTableInit.o GC.o Identity.o ImplicitContextI.o ImplicitContext.o IncomingAsync.o Incoming.o Initialize.o Instance.o LocalException.o LocalObject.o LocatorInfo.o Locator.o LoggerI.o Logger.o LoggerUtil.o Network.o ObjectAdapterFactory.o ObjectAdapterI.o ObjectAdapter.o ObjectFactoryManager.o ObjectFactory.o Object.o OpaqueEndpointI.o OutgoingAsync.o Outgoing.o PluginManagerI.o Plugin.o Process.o PropertiesI.o Properties.o PropertyNames.o Protocol.o ProtocolPluginFacade.o ProxyFactory.o Proxy.o ReferenceFactory.o Reference.o RetryQueue.o RequestHandler.o RouterInfo.o Router.o Selector.o ServantLocator.o ServantManager.o Service.o SliceChecksumDict.o SliceChecksums.o Stats.o StreamI.o Stream.o StringConverter.o SysLoggerI.o TcpAcceptor.o TcpConnector.o TcpEndpointI.o TcpTransceiver.o ThreadPool.o TraceLevels.o TraceUtil.o Transceiver.o UdpConnector.o UdpEndpointI.o UdpTransceiver.o -lIceUtil -lbz2 -liconv -ldl
    Undefined symbols for architecture x86_64:
    "_iconv_close", referenced from:
    Ice::IconvStringConverter<char>::close(std:air<void*, void*>)in StringConverter.o
    Ice::IconvStringConverter<wchar_t>::close(std:air<void*, void*>)in StringConverter.o
    Ice::IconvStringConverter<char>::createDescriptors () constin StringConverter.o
    Ice::IconvStringConverter<wchar_t>::createDescript ors() constin StringConverter.o
    "_iconv_open", referenced from:
    Ice::IconvStringConverter<char>::createDescriptors () constin StringConverter.o
    Ice::IconvStringConverter<wchar_t>::createDescript ors() constin StringConverter.o
    "_iconv", referenced from:
    Ice::IconvStringConverter<char>::fromUTF8(unsigned char const*, unsigned char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&) constin StringConverter.o
    Ice::IconvStringConverter<char>::toUTF8(char const*, char const*, Ice::UTF8Buffer&) constin StringConverter.o
    Ice::IconvStringConverter<wchar_t>::toUTF8(wchar_t const*, wchar_t const*, Ice::UTF8Buffer&) constin StringConverter.o
    Ice::IconvStringConverter<wchar_t>::fromUTF8(unsig ned char const*, unsigned char const*, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >&) constin StringConverter.o
    ld: symbol(s) not found for architecture x86_64
    collect2: ld returned 1 exit status
    make[3]: *** [../../lib/libIce.3.4.2.dylib] Error 1
    make[2]: *** [all] Error 1
    make[1]: *** [all] Error 1
    make: *** [all] Error 1

  2. #2
    xdm's Avatar
    xdm
    xdm is offline ZeroC Staff
    Name: Jose Gutierrez de la Concha
    Organization: ZeroC, Inc.
    Project: Ice Developer
    Join Date
    Sep 2003
    Location
    La Coruņa, Spain
    Posts
    588
    Hi Victor,

    Seems that your iconv doesn't support x86_64 architecture, the default 10.6 libiconv supports x86_64 so seems you have override it with other.

    Check that:

    Code:
    otool -fv /usr/lib/libiconv.dylib 
    Fat headers
    fat_magic FAT_MAGIC
    nfat_arch 3
    architecture x86_64
        cputype CPU_TYPE_X86_64
        cpusubtype CPU_SUBTYPE_X86_64_ALL
        capabilities 0x0
        offset 4096
        size 1078816
        align 2^12 (4096)
    architecture i386
        cputype CPU_TYPE_I386
        cpusubtype CPU_SUBTYPE_I386_ALL
        capabilities 0x0
        offset 1085440
        size 1053936
        align 2^12 (4096)
    architecture ppc7400
        cputype CPU_TYPE_POWERPC
        cpusubtype CPU_SUBTYPE_POWERPC_7400
        capabilities 0x0
        offset 2142208
        size 1063552
        align 2^12 (4096)
    If your iconv don't shows x86_64 architecture, you need to get a version that support this architecture, restoring from the 10.6 default or building it from sources with support for this.

    See also this blog post for similar problem, Mac OS X | Flowing

  3. #3
    victor is offline Registered User
    Name: Victor Powell
    Organization: Personal
    Project: ICE to Node.JS
    Join Date
    Nov 2011
    Posts
    3
    Thanks for the help.

    I bashed my head over this one for quite a while until i finally tried running make with sudo and it finally ended up linking with libiconv. (But I really have no idea why that helped.)

    After that, I slowly collected one dependency after another and rebuilt (rinse and repeat) until this little beauty showed up:
    make[3]: gmcs: No such file or directory
    make[3]: *** [../../bin/Ice.dll] Error 1

    the entire output of the failed command is bellow:

    Code:
    gmcs -warnaserror -d:MAKEFILE_BUILD -debug -define:DEBUG -target:library -out:../../bin/Ice.dll -warnaserror- -keyfile:../../../config/IceDevKey.snk /doc:../../bin/Ice.xml /nowarn:1591 -unsafe+ Acceptor.cs AMDCallback.cs Application.cs Arrays.cs AssemblyInfo.cs AssemblyUtil.cs AsyncIOThread.cs Base64.cs BasicStream.cs Buffer.cs ByteBuffer.cs CommunicatorI.cs Compare.cs CollectionBase.cs Collections.cs ConnectRequestHandler.cs ConnectionI.cs ConnectionFactory.cs ConnectionMonitor.cs ConnectionReaper.cs ConnectionRequestHandler.cs Connector.cs DefaultsAndOverrides.cs DictionaryBase.cs Direct.cs DispatchInterceptor.cs EndpointI.cs EndpointFactory.cs EndpointFactoryManager.cs EndpointHostResolver.cs EventHandler.cs Exception.cs ImplicitContextI.cs IncomingAsync.cs Incoming.cs Instance.cs LinkedList.cs LocalObject.cs LocatorInfo.cs LoggerI.cs LoggerPlugin.cs Monitor.cs Network.cs ObjectAdapterFactory.cs ObjectAdapterI.cs Object.cs ObjectFactoryManager.cs OpaqueEndpointI.cs Options.cs OutgoingAsync.cs Outgoing.cs OutputBase.cs Patcher.cs PluginManagerI.cs ProcessI.cs PropertiesAdminI.cs PropertiesI.cs Property.cs PropertyNames.cs Protocol.cs ProtocolPluginFacade.cs Proxy.cs ProxyFactory.cs ProxyIdentityKey.cs Reference.cs ReferenceFactory.cs ReplyStatus.cs RequestHandler.cs RetryQueue.cs RouterInfo.cs ServantManager.cs SliceChecksums.cs SocketOperation.cs Stream.cs StreamI.cs StreamWrapper.cs StringUtil.cs SysLoggerI.cs TcpAcceptor.cs TcpConnector.cs TcpEndpointI.cs TcpTransceiver.cs ThreadHookPlugin.cs ThreadPool.cs TieBase.cs Time.cs Timer.cs TraceLevels.cs TraceUtil.cs Transceiver.cs UdpEndpointI.cs UdpConnector.cs UdpTransceiver.cs UserExceptionFactory.cs Util.cs ValueWriter.cs XMLOutput.cs generated/BuiltinSequences.cs generated/Communicator.cs generated/Connection.cs generated/Current.cs generated/Endpoint.cs generated/EndpointTypes.cs generated/FacetMap.cs generated/Identity.cs generated/ImplicitContext.cs generated/LocalException.cs generated/Locator.cs generated/Logger.cs generated/ObjectAdapter.cs generated/ObjectFactory.cs generated/Plugin.cs generated/Process.cs generated/Properties.cs generated/Router.cs generated/ServantLocator.cs generated/SliceChecksumDict.cs generated/Stats.cs
    make[3]: gmcs: No such file or directory
    make[3]: *** [../../bin/Ice.dll] Error 1
    make[2]: *** [all] Error 1
    make[1]: *** [all] Error 1
    make: *** [all] Error 1
    edit: i guess this was a bit of a premature post on my part. slice2cs for C# but I'm guessing that mapping isn't supported on OS X.
    Last edited by victor; 11-14-2011 at 04:58 PM.

  4. #4
    xdm's Avatar
    xdm
    xdm is offline ZeroC Staff
    Name: Jose Gutierrez de la Concha
    Organization: ZeroC, Inc.
    Project: Ice Developer
    Join Date
    Sep 2003
    Location
    La Coruņa, Spain
    Posts
    588
    You need to install mono if you want to build Ice for .NET. gmcs is mono compiler for 2.0 .NET runtime.

  5. #5
    benoit's Avatar
    benoit is online now ZeroC Staff
    Name: Benoit Foucher
    Organization: ZeroC, Inc.
    Project: Ice
    Join Date
    Feb 2003
    Location
    Rennes, France
    Posts
    2,196
    Quote Originally Posted by victor View Post
    Thanks for the help.

    I bashed my head over this one for quite a while until i finally tried running make with sudo and it finally ended up linking with libiconv. (But I really have no idea why that helped.)
    Most likely you have another iconv version installed in /usr/local and it's not used when compiling with sudo.

    Benoit.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Ice binary distribution for OS X 10.6?
    By slypete in forum Help Center
    Replies: 17
    Last Post: 09-05-2010, 07:03 PM
  2. Ice 3.0.0 / Mac OS X 10.4.3, GCC 4.0.1
    By lindholm in forum Bug Reports
    Replies: 3
    Last Post: 11-21-2005, 04:54 AM
  3. Compiling demos on Mac OS X 10.4.2
    By CAS in forum Help Center
    Replies: 4
    Last Post: 09-30-2005, 07:33 PM
  4. Compile Error on OS X 10.4.2
    By jbruni in forum Help Center
    Replies: 4
    Last Post: 09-22-2005, 04:13 AM
  5. Ice-2.1.2 on OS X 10.4.2/gcc 4.0
    By jbruni in forum Help Center
    Replies: 2
    Last Post: 08-05-2005, 09:12 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •