How do I run a program compiled in cygwin from a program that is running in a Windows CMD shell?
Thu Sep 15 20:19:00 GMT 2011
As stated, the mno-cygwin flag was depreciated in gcc 4. This was what
you used to link to the windows c runtime instead of the cygwin dll. In
other words, it let you compile with cygwin gcc and then run on a
windows box that didn't have cygwin installed (very useful). Since some
of your issue seemed to be with the cygwin environment, it seemed like
detaching yourself from it at link time might be a good idea. Windows
doesn't' know or care whether the app was compiled under gcc or visual
studio if you used the no-cygwin flag, so I didn't see why it would
matter how or where you called the app, from perl, bash, cmd, etc.
I have never elevated to gcc 4 and have cygwin configured to only
install gcc 3. I am sure you could have both installed and point to one
or the other in your make file depending on what you want. If I remember
right, the no-cygwin flag was depreciated before the "ming compatible
cross compiler" was available, so I stayed with 3 at the time. I also
had issues with 4.1 under linux. I had an app would give different
floating point answers compiled wiht 4.1 compared to 3.4. This seems to
have been fixed by 4.3 and the app compiled under 4.3 gives me the same
answer as 3.4. I don't know if there was a bug in the early 4 versions,
or what. This may have been an issue with gfortran and not gcc since
it's a hybrid app.
I also like the fact that 3 is closed and they aren't constantly
changing the header files and such. It's very annoying to get code that
compiled under an older version and won't compile any more because they
changed 10 different header files and no I have to add 56 ifdef
statements to compile under the new version. Version 3.4 does everything
I need, so I have stuck with it, especially since I know how to cross
compile with it. I suppose I will get around to getting version 4
working, but I have other fish in the pan for now.
It seems like a cross compiled c app to launch your child process would
be more portable, but I will look at the perl more closely later. I'm
off to the dentist for now, fun, fun, fun.
Ted Byers wrote:
> Larry Hall (Cygwin<reply-to-list-only-lh<at> cygwin.com> writes:
>> On 9/15/2011 1:28 PM, Ted Byers wrote:
>>> LMH<lmh_users-groups<at> molconn.com> writes:
>>> What, exactly, does '-mno-cygwin' do?
>>> BTW: With gcc v 4.5.3, using 'G++ -mno-cygwin' followed by the other
>>> commandline arguements needed to compile something results in an error
>>> it complains '-mno-cygwin' is no longer valid (I forget the exact wording,
>>> that is the gist of the error message I got).
>> Right. '-mno-cygwin' is not a supported flag for gcc with version 4. It was
>> there to allow a kind of cross compiler that targets Win32 instead of
>> Cygwin. This is obviously not what you want anyway so it's of no
>> consequence to you that the flag has been removed. There are now
>> actual cross compilers available in Cygwin for gcc 4 that serve the purpose
>> of the old '-mno-cygwin' flag.
> Hi Larry,
> I installed only the gcc4 compilers (all of them, v4.5.3), but I didn't even
> look for cross compilers.
> What is the name of the cross compilers (would they be those that
> include 'mingw' in the name? Not having installed, them, perhaps this is a
> naive question, but will they live alongside the gcc4 compilers without the
> names of the compilers clashing? I recalled something about mingw, but
> thought that was a completely different approach to having gcc on Windows, and
> in the versions included with RTools, the names of the programs there would
> definitely collide with those for gcc4
> Thanks again
> Problem reports: http://cygwin.com/problems.html
> FAQ: http://cygwin.com/faq/
> Documentation: http://cygwin.com/docs.html
> Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
More information about the Cygwin