thank you, Gilzad Hamuni
in fact, I have another way: while EXE is running, try to delete all
the DLLs. If one DLLs is in used, it can not be deleted. However, this
method could fail if some DLLs are loaded later

2016-06-23 20:41 GMT+08:00 Gilzad Hamuni <gil...@gmx.net>:
> Hi,
> I can try to give you some ideas for the first question from my experiences 
> with msys+vala (Win32).
>
> In a real linux environment we can use ldd to find out which libraries an 
> executable depends on.
>
> $ ldd hello
>
> But in my version of msys/mingw ldd doesn't work. However, I don't update my 
> msys to avoid conflicts with too quickly updated libraries. So you might have 
> a working version of it by now.
>
> Another way is to use the Dependency Walker [1] which seems to be suggested 
> among developers. I haven't had many experiences with it though.
>
> The third way I know is just trial and error. You copy your hello.exe into a 
> different directory and call it directly from the system (outside the 
> msys-environment). Windows will then tell you which DLL it is missing. You 
> can then copy the requested DLL to the same directory and attempt to run 
> hello.exe again. Windows will tell you what other DLL is missing. So you 
> repeat this procedure until you have all the DLLs that hello.exe needs. You 
> surely don't need to provide all DLLs from mingw, thus you'll save some 
> space, too.
>
> If you still need to reduce the required disk space of your app+dlls, you can 
> try to pack them with UPX [2]. Just note that some anti-virus programs used 
> to detect self-extracting executables as harmful.
>
>
> Unfortunately I don't have a clue about your second question, I'm sorry.
>
>
> [1] http://www.dependencywalker.com/
> [2] http://upx.sourceforge.net/
>
>> Gesendet: Donnerstag, 23. Juni 2016 um 04:31 Uhr
>> Von: oyster <lepto.pyt...@gmail.com>
>> An: "vala-list@gnome.org" <vala-list@gnome.org>
>> Betreff: [Vala] 2 questions on valac in msys2
>>
>> they are 2 relative questions I found in my msys2 on Windows 7
>>
>> 1. how to distribute EXE for PC without glib/gtk/etc? Currently, I
>> copy all DLLs under /msys64 to the same directory where the EXE stays.
>> The problem is that it is not so nice, and the DLLs take up 150Mbytes!
>> So is there an automatic way to copy only necessary DLLs?
>>
>> 2. If I run hello_gtk.exe in the dos prompt window of Windows7, when I
>> close it, nothing is displayed. However, in msys2, I have changed the
>> current working directory to where hello_gtk.exe can be found, the I
>> run and close hello_gtk.exe
>> [code]
>> $ ./hello_gtk.exe
>>
>> # then I close hello_gtk.exe
>>
>> (hello_gtk.exe:43496): GLib-GObject-WARNING **: attempt to override
>> closure->va_marshal (0000000063a48a20) with new marshal
>> (0000000066710ea8)
>> [/code]
>>
>> Why? and how to eliminate it? Thanks
>> _______________________________________________
>> vala-list mailing list
>> vala-list@gnome.org
>> https://mail.gnome.org/mailman/listinfo/vala-list
>>
_______________________________________________
vala-list mailing list
vala-list@gnome.org
https://mail.gnome.org/mailman/listinfo/vala-list

Reply via email to