[Mono-ue] Mono for UE build issues

Michael Hutchinson m.j.hutchinson at gmail.com
Fri Oct 31 22:59:41 UTC 2014


The install_name_tool command changes the identity of libmonosgen-2.0.dylib
to be relative instead of absolute so that it can be used in any machine.

We've actually uploaded preview 2 of the package which should fix this and
the earlier issue of missing files.

However, the MonoRuntime module will need to be rebuilt against the updated
libmono dylib.

You can force that module to rebuild by touching some of its files e.g.
with this command (IIRC, on my phone right now):

touch Engine/Plugins/XamarinUE4/MonoRuntime/Source/MonoRuntime/Private/*.h

- m
On Oct 31, 2014 6:03 PM, "Kei Nakazawa" <muo at muo.jp> wrote:

> Michael,
>
> thanks for posting workaround. I tried this way:
> First, removed the copy of libmonosgen-2.0.dylib and its symlink:
> $ rm /usr/local/lib/libmonosgen-2.0.*
>
> Then:
> $ pwd
> /Users/keinakazawa/Documents/workspace/UnrealEngine
> $ install_name_tool -id '@rpath/libmonosgen-2.0.dylib'
> Engine/Binaries/ThirdParty/EMono/bin/Mac/libmonosgen-2.0.dylib
> $ cp Engine/Binaries/ThirdParty/EMono/bin/Mac/libmonosgen-2.0.dylib
> Engine/Plugins/XamarinUE4/MonoRuntime/Source/ThirdParty/mono/lib/Mac/libmonosgen-2.0.dylib
>
> And I switched back to Xcode and performed Cmd+R. But start-up sequence
> failed with the same error I got previously:
> dyld: can't resolve symbol _mono_set_signal_chaining in
> /Users/keinakazawa/Documents/workspace/UnrealEngine/Engine/Plugins/XamarinUE4/MonoRuntime/Binaries/Mac/UE4Editor-MonoRuntime-Mac-Debug.dylib
> because dependent dylib #10 could not be loaded
>
> I did a quick survey to know what's going on and to find out quick fix.
>
> $ otool -L
> Engine/Plugins/XamarinUE4/MonoRuntime/Binaries/Mac/UE4Editor-MonoRuntime-Mac-Debug.dylib
> | grep libmono
>     /Users/michael/Mono/mono/../build/lib/libmonosgen-2.0.1.dylib
> (compatibility version 2.0.0, current version 2.0.0)
>
> So, it seems that changing hard coded libpath inside
> UE4Editor-MonoRuntime-Mac-Debug.dylib would just be a workaround.
> $ install_name_tool -change
> "/Users/michael/Mono/mono/../build/lib/libmonosgen-2.0.1.dylib"
> "@rpath/libmonosgen-2.0.dylib"
> Engine/Plugins/XamarinUE4/MonoRuntime/Binaries/Mac/UE4Editor-MonoRuntime-Mac-Debug.dylib
> $ cp Engine/Binaries/ThirdParty/EMono/bin/Mac/libmonosgen-2.0.dylib
> Engine/Plugins/XamarinUE4/MonoRuntime/Binaries/Mac/
>
> After performing this tweak, It's working on my Mac. I still suspect
> UE4Editor-MonoRuntime-Mac-Debug.dylib will be replace every time I build,
> but putting `install_name_tool` on post-build script doesn't seem to be a
> reasonable option..
>
> Or am I missing something? i.e. Do I need to clean & rebuild after
> `install_name_tool -id ...` command?
>
> Regards, Kei.
>
>
> 2014-11-01 5:39 GMT+09:00 Michael Hutchinson <m.j.hutchinson at gmail.com>:
>
>> As a workaround, try this:
>>
>> install_name_tool -id '@rpath/libmonosgen-2.0.dylib'
>> Engine/Binaries/ThirdParty/EMono/bin/Mac/libmonosgen-2.0.dylib
>> cp Engine/Binaries/ThirdParty/EMono/bin/Mac/libmonosgen-2.0.dylib
>>
>> Engine/Plugins/XamarinUE4/MonoRuntime/Source/ThirdParty/mono/lib/Mac/libmonosgen-2.0.dylib
>>
>> On 31 October 2014 16:22, Michael Hutchinson <m.j.hutchinson at gmail.com>
>> wrote:
>> > Looking into this right now, it looks like some local paths got baked
>> > into the Mono dylibs we're shipping in the zip file.
>> >
>> > On 31 October 2014 16:14, Kei Nakazawa <muo at muo.jp> wrote:
>> >> Hi,
>> >>
>> >> with UnrealAgent.cs & UnrealAgentConnection.cs, building UE 4 Editor
>> >> finished w/o errors. Great forward step.
>> >>
>> >> But I ran into the error below once I perform Product -> Run (Cmd+R)
>> and got
>> >> UE4 splash screen (not reached to Unreal Project Browser).
>> >>
>> >> [2014.10.31-19.56.36:569][  0]BlueprintLog: New page: Editor Load
>> >> dyld: lazy symbol binding failed: Symbol not found:
>> >> _mono_trace_set_log_handler
>> >>   Referenced from:
>> >>
>> /Users/keinakazawa/Documents/workspace/UnrealEngine/Engine/Plugins/XamarinUE4/MonoRuntime/Binaries/Mac/UE4Editor-MonoRuntime-Mac-Debug.dylib
>> >>   Expected in: /usr/local/lib/libmonosgen-2.0.1.dylib
>> >>
>> >> dyld: Symbol not found: _mono_trace_set_log_handler
>> >>   Referenced from:
>> >>
>> /Users/keinakazawa/Documents/workspace/UnrealEngine/Engine/Plugins/XamarinUE4/MonoRuntime/Binaries/Mac/UE4Editor-MonoRuntime-Mac-Debug.dylib
>> >>   Expected in: /usr/local/lib/libmonosgen-2.0.1.dylib
>> >>
>> >>
>> >> I have Mono 3.4.0 installed on /usr/local/Cellar/mono/3.4.0 and
>> symlinked to
>> >> /usr/local/lib/libmonosgen-2.0.1.dylib.
>> >>
>> >> I just temporarily unlinked this binary (because I won't get any
>> troubles
>> >> w/o this because I also have installed Mono by installer binary).
>> >> $ brew unlink mono
>> >>
>> >> I performed Cmd+R again and got:
>> >>
>> >> dyld: lazy symbol binding failed: can't resolve symbol
>> >> _mono_set_signal_chaining in
>> >>
>> /Users/keinakazawa/Documents/workspace/UnrealEngine/Engine/Plugins/XamarinUE4/MonoRuntime/Binaries/Mac/UE4Editor-MonoRuntime-Mac-Debug.dylib
>> >> because dependent dylib #10 could not be loaded
>> >> dyld: can't resolve symbol _mono_set_signal_chaining in
>> >>
>> /Users/keinakazawa/Documents/workspace/UnrealEngine/Engine/Plugins/XamarinUE4/MonoRuntime/Binaries/Mac/UE4Editor-MonoRuntime-Mac-Debug.dylib
>> >> because dependent dylib #10 could not be loaded
>> >>
>> >> it seems UE4 Editor simply can't find Mono runtime lib (which is
>> placed at
>> >>
>> Engine/Plugins/XamarinUE4/MonoRuntime/Source/ThirdParty/mono/lib/Mac/libmonosgen-2.0.dylib)
>> >> this time.
>> >>
>> >> So I copied Mono for UE bundled libmonosgen-2.0.dylib to lib dir:
>> >> $ cp ./MonoRuntime/Source/ThirdParty/mono/lib/Mac/libmonosgen-2.0.dylib
>> >> /usr/local/lib/
>> >> and symlinked as 2.0.1
>> >> $ ln -s /usr/local/lib/libmonosgen-2.0.dylib
>> >> /usr/local/lib/libmonosgen-2.0.1.dylib
>> >> then performing Cmd+R to finally get to "Unreal Project Browser"
>> screen.
>> >>
>> >> Hope it helps somebody and maybe improve build process :)
>> >>
>> >> Regards, Kei.
>> >>
>> >> 2014-11-01 1:00 GMT+09:00 Kei Nakazawa <muo at muo.jp>:
>> >>>
>> >>> Michael,
>> >>> thanks for uploading gist.
>> >>>
>> >>> I changed
>> >>>
>> >>>
>> Engine/Plugins/XamarinUE4/MonoMainDomain/UnrealEngine.MainDomain.csproj:
>> >>> >  57     <Compile
>> >>> >
>> Include="..\XamarinStudio\XamarinStudio.Unreal\Projects\UnrealAgentConnection.cs">
>> >>> >  67     <Compile
>> >>> >
>> Include="..\XamarinStudio\XamarinStudio.Unreal\Projects\UnrealAgent.cs">
>> >>> to
>> >>> >  57     <Compile Include="UnrealAgentConnection.cs">
>> >>> >  67     <Compile Include="UnrealAgent.cs">
>> >>> then put the files on
>> https://gist.github.com/mhutch/8513c1893c8b61eb4d24
>> >>> into the same directory and it seems build process continued (not yet
>> >>> finished, but no error so far).
>> >>>
>> >>> Regards, Kei.
>> >>>
>> >>>
>> >>> 2014-11-01 0:48 GMT+09:00 Michael Hutchinson <
>> m.j.hutchinson at gmail.com>:
>> >>>>
>> >>>> In the meantime, here are the two missing files:
>> >>>>
>> >>>> https://gist.github.com/mhutch/8513c1893c8b61eb4d24
>> >>>>
>> >>>> On 31 October 2014 11:35, Michael Hutchinson <
>> m.j.hutchinson at gmail.com>
>> >>>> wrote:
>> >>>> > Sorry, looks like we accidentally omitted a file. Working on a new
>> >>>> > package right now.
>> >>>> >
>> >>>> > On 31 October 2014 11:21, Peter Petermann <ppetermann80 at gmail.com>
>> >>>> > wrote:
>> >>>> >> Alright, so i tried to follow the installation guide at
>> >>>> >> http://mono-ue.github.io/installation.html
>> >>>> >>
>> >>>> >> and when i come to rebuilding with the patches applied, i get the
>> >>>> >> error:
>> >>>> >> Error 1 error : Expected C# dependency
>> >>>> >>
>> >>>> >>
>> E:\dev\unreal\UnrealEngine\Engine\Intermediate\Build\Win64\Mono\..\..\..\..\Plugins\XamarinUE4\MonoMainDomain\..\XamarinStudio\XamarinStudio.Unreal\Projects\UnrealAgentConnection.cs
>> >>>> >> to exist.
>> >>>> >>
>> >>>> >> looking closer at that path, that whole path doesn't exist
>> >>>> >>
>> >>>> >> It will find the
>> \dev\unreal\UnrealEngine\Engine\Plugins\XamarinUE4
>> >>>> >> path,
>> >>>> >> but within that there is no subdirectory named XamarinStudio,
>> thus no
>> >>>> >> further subdirectories and no UnrealAgentConnections.cs
>> >>>> >>
>> >>>> >> i had a look at the zip that i could download after last nights
>> mail,
>> >>>> >> and it
>> >>>> >> doesnt contain that folder either.
>> >>>> >>
>> >>>> >> best regards,
>> >>>> >> PP
>> >>>> >>
>> >>>> >> 2014-10-31 16:19 GMT+01:00 Miguel de Icaza <miguel at xamarin.com>:
>> >>>> >>>
>> >>>> >>> Please do post the error messages.
>> >>>> >>>
>> >>>> >>> On Fri, Oct 31, 2014 at 7:26 AM, Peter Petermann
>> >>>> >>> <ppetermann80 at gmail.com>
>> >>>> >>> wrote:
>> >>>> >>>>
>> >>>> >>>> Hi,
>> >>>> >>>>
>> >>>> >>>> I'm having a build issue on windows (it seems there are files
>> >>>> >>>> missing),
>> >>>> >>>> can i post the error message here?
>> >>>> >>>>
>> >>>> >>>> regards,
>> >>>> >>>> PP
>> >>>> >>>>
>> >>>> >>>> 2014-10-31 11:40 GMT+01:00 Kei Nakazawa <muo at muo.jp>:
>> >>>> >>>>>
>> >>>> >>>>> Hi,
>> >>>> >>>>>
>> >>>> >>>>> like many of you subscribed here, I received a download link of
>> >>>> >>>>> preview
>> >>>> >>>>> today. Then I gave a shot of building and see certain build
>> error
>> >>>> >>>>> on OSX.
>> >>>> >>>>>
>> >>>> >>>>> I just wanted to paste the error lines on this list but I
>> stopped:
>> >>>> >>>>>
>> >>>> >>>>> I'm wondering about NDA I agreed for downloading the preview
>> >>>> >>>>> package. It
>> >>>> >>>>> prevents us from disclosing internal information publicly
>> (because
>> >>>> >>>>> of
>> >>>> >>>>> course, it's a NDA). This list (mono-ue at lists.ximian.com ) is
>> an
>> >>>> >>>>> open one
>> >>>> >>>>> and anybody w/o NDA can access archives. So, if we strictly
>> follow
>> >>>> >>>>> the NDA,
>> >>>> >>>>> we shouldn't post details about build errors here. Instead, we
>> >>>> >>>>> should post
>> >>>> >>>>> error reports to some bugzilla or mailing lists privately.
>> >>>> >>>>>
>> >>>> >>>>> Do you have some guidelines?
>> >>>> >>>>>
>> >>>> >>>>> Regards, Kei.
>> >>>> >>>>>
>> >>>> >>>>> _______________________________________________
>> >>>> >>>>> Mono-ue mailing list
>> >>>> >>>>> Mono-ue at lists.ximian.com
>> >>>> >>>>> http://lists.ximian.com/mailman/listinfo/mono-ue
>> >>>> >>>>>
>> >>>> >>>>
>> >>>> >>>>
>> >>>> >>>>
>> >>>> >>>> --
>> >>>> >>>> Peter Petermann
>> >>>> >>>> Email: ppetermann80 at gmail.com - get my public PGP key from SKS
>> >>>> >>>> Keyservers
>> >>>> >>>> PGP Key:
>> >>>> >>>>
>> >>>> >>>>
>> http://pool.sks-keyservers.net:11371/pks/lookup?op=get&search=0x0E6DBD675836A5C7
>> >>>> >>>>
>> >>>> >>>>
>> >>>> >>>>
>> >>>> >>>> --
>> >>>> >>>> Peter Petermann
>> >>>> >>>> Email: ppetermann80 at gmail.com - get my public PGP key from SKS
>> >>>> >>>> Keyservers
>> >>>> >>>> PGP Key:
>> >>>> >>>>
>> >>>> >>>>
>> http://pool.sks-keyservers.net:11371/pks/lookup?op=get&search=0x0E6DBD675836A5C7
>> >>>> >>>>
>> >>>> >>>> 2014-10-31 11:40 GMT+01:00 Kei Nakazawa <muo at muo.jp>:
>> >>>> >>>>>
>> >>>> >>>>> Hi,
>> >>>> >>>>>
>> >>>> >>>>> like many of you subscribed here, I received a download link of
>> >>>> >>>>> preview
>> >>>> >>>>> today. Then I gave a shot of building and see certain build
>> error
>> >>>> >>>>> on OSX.
>> >>>> >>>>>
>> >>>> >>>>> I just wanted to paste the error lines on this list but I
>> stopped:
>> >>>> >>>>>
>> >>>> >>>>> I'm wondering about NDA I agreed for downloading the preview
>> >>>> >>>>> package. It
>> >>>> >>>>> prevents us from disclosing internal information publicly
>> (because
>> >>>> >>>>> of
>> >>>> >>>>> course, it's a NDA). This list (mono-ue at lists.ximian.com ) is
>> an
>> >>>> >>>>> open one
>> >>>> >>>>> and anybody w/o NDA can access archives. So, if we strictly
>> follow
>> >>>> >>>>> the NDA,
>> >>>> >>>>> we shouldn't post details about build errors here. Instead, we
>> >>>> >>>>> should post
>> >>>> >>>>> error reports to some bugzilla or mailing lists privately.
>> >>>> >>>>>
>> >>>> >>>>> Do you have some guidelines?
>> >>>> >>>>>
>> >>>> >>>>> Regards, Kei.
>> >>>> >>>>>
>> >>>> >>>>> _______________________________________________
>> >>>> >>>>> Mono-ue mailing list
>> >>>> >>>>> Mono-ue at lists.ximian.com
>> >>>> >>>>> http://lists.ximian.com/mailman/listinfo/mono-ue
>> >>>> >>>>>
>> >>>> >>>>
>> >>>> >>>>
>> >>>> >>>>
>> >>>> >>>> --
>> >>>> >>>> Peter Petermann
>> >>>> >>>> Email: ppetermann80 at gmail.com - get my public PGP key from SKS
>> >>>> >>>> Keyservers
>> >>>> >>>> PGP Key:
>> >>>> >>>>
>> >>>> >>>>
>> http://pool.sks-keyservers.net:11371/pks/lookup?op=get&search=0x0E6DBD675836A5C7
>> >>>> >>>>
>> >>>> >>>> _______________________________________________
>> >>>> >>>> Mono-ue mailing list
>> >>>> >>>> Mono-ue at lists.ximian.com
>> >>>> >>>> http://lists.ximian.com/mailman/listinfo/mono-ue
>> >>>> >>>>
>> >>>> >>>
>> >>>> >>
>> >>>> >>
>> >>>> >>
>> >>>> >> --
>> >>>> >> Peter Petermann
>> >>>> >> Email: ppetermann80 at gmail.com - get my public PGP key from SKS
>> >>>> >> Keyservers
>> >>>> >> PGP Key:
>> >>>> >>
>> >>>> >>
>> http://pool.sks-keyservers.net:11371/pks/lookup?op=get&search=0x0E6DBD675836A5C7
>> >>>> >>
>> >>>> >> _______________________________________________
>> >>>> >> Mono-ue mailing list
>> >>>> >> Mono-ue at lists.ximian.com
>> >>>> >> http://lists.ximian.com/mailman/listinfo/mono-ue
>> >>>> >>
>> >>>> >
>> >>>> >
>> >>>> >
>> >>>> > --
>> >>>> > Michael Hutchinson ~ https://mhut.ch
>> >>>>
>> >>>>
>> >>>>
>> >>>> --
>> >>>> Michael Hutchinson ~ https://mhut.ch
>> >>>> _______________________________________________
>> >>>> Mono-ue mailing list
>> >>>> Mono-ue at lists.ximian.com
>> >>>> http://lists.ximian.com/mailman/listinfo/mono-ue
>> >>>
>> >>>
>> >>
>> >
>> >
>> >
>> > --
>> > Michael Hutchinson ~ https://mhut.ch
>>
>>
>>
>> --
>> Michael Hutchinson ~ https://mhut.ch
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ximian.com/pipermail/mono-ue/attachments/20141031/6101915b/attachment-0001.html>


More information about the Mono-ue mailing list