Consider this: windows is the alien os. Nowadays most operating systems has
a unix core. Even apple went in that direction. Android, while having an
abstract API, is also unix underneath.

Gnu development tools (GCC, Binutils, autotools, etc.) was developed on
unix flavors for decades now. As they are portable, people did port them to
windows, and what was initially an attempt evolved to the point where it
became a competitive product. But it still have this years old background.

I for instance develop on Linux, I maintain a set of cross-compiled
software and I write portable C  & C++ softwares, which I cross-compile to
windows. To me, mingw-w64 cross-compiling is a matter of setting a few
variables and typing "make". Once the software was adequately preparated
(where the real pain in the *** is), it's rarely harder than that.

When running in native windows, GCC was ported to it, but you have to
understand that the user base is smaller and the unix background is sticky
into gcc. So there are several things that seems harder (for being
different than the Microsoft  way, mainly) for a windows native developer
but that are a breeze for anyone working elsewhere, and vice-versa: windows
api is very different from most systems which tries to get some degree of
POSIX compatibility, for instance. And microsoft sometimes tries to provide
emulated routines which are not always done the right way.

The beauty of open source is that anyone can come and contribute.

Consider that MSVC is a complex tool, not only it aggregates a
compiler/assembler/linker set, but debugging funcionality, libraries and
have a (arguable but very usable) GUI for 99% of it's functionality. Until
a few years ago (2013 IIRC) there wasn't a free license for the full suite,
only to the capped "express" version, so people who couldn't pay or agree
to the component redistribution terms for other reasons found out mingw and
other tools to be very valuable, but they never did try to match the "ready
to use with all shorcuts in place" way that msvc (and other native
development tools for any platform, btw) had.

Now that most people can begin development with msvc and consider licensing
it in a later project stage (or changing compilers, afaik the license only
prohibit distributing the code, not creating it), people complain that
other tools aren't so integrated, but there are several gui distributions
out there that tries to reduce the gap, like codeblocks. Which is
advertised as portable (cross-platform is the right term), by the way. A
cross-platform tool will probably never ever feel like a native one,
because it have to focus on the functionality that is common to most
platforms rather than integrating in the subtle ways that a native tool
does (functionality that you rarely use, but that's very useful when you
really need it).

Feel free to contribute with these projects, from constructive criticism to
suggestions, or eventually with what really evolves open source projects:
ideas and code. People say code matters most, I'd say that bad code helps
less than good ideas. Another way to help is funding those open source
projects that you use and like. Open source project are kept around by
investment (in hours people dedicate to it) and the community feedback, but
sometimes money helps too.

Cheers.

Alexandre




On Tue, Jun 30, 2015 at 6:30 AM, <[email protected]> wrote:

>   Thanks for the help Alexandre.
> Look man, it could not have at a better time; porting the code from VC++
> to g++ has not been a easy thing for me, I am so used to the flexibility of
> VS that now that I am using the actual C++ standard I realize the
> facilities and traps provided Microsoft. The last step of this process is
> the Win32/64 library the company uses, and in my honest opinion GCC *should
> provide the same facilities that Microsoft provides when it comes to the
> API,  after all, it is their API for Windows OS. Nonetheless, thanks to
> your help the porting has become much easier, thanks man.
>
>  *From:* Alexandre Pereira Nunes <[email protected]>
> *Sent:* Monday, June 29, 2015 8:04 PM
> *To:* [email protected]
> *Subject:* Re: [Mingw-w64-public] More porting problems :(
>
>  It seems like you're not  passing -lwinmm to the linker. I use this:
> LDFLAGS := -Wl,--as-needed -lgdi32 -lcomdlg32 -lws2_32 -lwinmm
> -Wl,--no-as-needed
>
> to selectively link these libraries. I'm not sure if the "as-needed" logic
> is required on windows, but it works for me™.
>
> What it does is only reference these libraries as a dependency if your
> program needs symbols for them).
>
>  Em seg, 29 de jun de 2015 às 20:53, <[email protected]> escreveu:
>
>>   The latest MinGW64 complains about this code:
>> *#include <windows.h>*
>> *#include <mmsystem.h>*
>> *#include <Mmsystem.h>*
>>
>> *bool abc::Sound::PlayIt(){*
>> *    //return !!sndPlaySoundW(Soundfile.c_str(), SND_FILENAME);*
>> *    return !!PlaySoundW(Soundfile.c_str(), NULL,
>> SND_FILENAME/*SND_ASYNC*/);*
>> *}*
>>
>> It says
>> *In function `abc::Sound::PlayIt()':*
>> *C:/Win32/sound.cpp:28: undefined reference to `__imp_PlaySoundW'*
>>
>> This code compiles under VS, it should under g++ 5.1.
>>
>>
>> ------------------------------
>>   [image: Avast logo] <http://www.avast.com/>
>>
>> This email has been checked for viruses by Avast antivirus software.
>> www.avast.com
>>
>>
>> ------------------------------------------------------------------------------
>> Don't Limit Your Business. Reach for the Cloud.
>> GigeNET's Cloud Solutions provide you with the tools and support that
>> you need to offload your IT needs and focus on growing your business.
>> Configured For All Businesses. Start Your Cloud Today.
>> https://www.gigenetcloud.com/
>> _______________________________________________
>> Mingw-w64-public mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
>>
>  ------------------------------
>
> ------------------------------------------------------------------------------
> Don't Limit Your Business. Reach for the Cloud.
> GigeNET's Cloud Solutions provide you with the tools and support that
> you need to offload your IT needs and focus on growing your business.
> Configured For All Businesses. Start Your Cloud Today.
> https://www.gigenetcloud.com/
>
> ------------------------------
> _______________________________________________
> Mingw-w64-public mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
>
>
>
> ------------------------------
>   [image: Avast logo] <http://www.avast.com/>
>
> This email has been checked for viruses by Avast antivirus software.
> www.avast.com
>
>
>
> ------------------------------------------------------------------------------
> Don't Limit Your Business. Reach for the Cloud.
> GigeNET's Cloud Solutions provide you with the tools and support that
> you need to offload your IT needs and focus on growing your business.
> Configured For All Businesses. Start Your Cloud Today.
> https://www.gigenetcloud.com/
> _______________________________________________
> Mingw-w64-public mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
>
>
------------------------------------------------------------------------------
Don't Limit Your Business. Reach for the Cloud.
GigeNET's Cloud Solutions provide you with the tools and support that
you need to offload your IT needs and focus on growing your business.
Configured For All Businesses. Start Your Cloud Today.
https://www.gigenetcloud.com/
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to