This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: How do I run a program compiled in cygwin from a program that is running in a Windows CMD shell?
- From: Ted Byers <r dot ted dot byers at gmail dot com>
- To: cygwin at cygwin dot com
- Date: Thu, 15 Sep 2011 13:17:04 +0000 (UTC)
- Subject: Re: How do I run a program compiled in cygwin from a program that is running in a Windows CMD shell?
- References: <loom.20110915T060405-768@post.gmane.org>
Thanks Marco and Andrew
I have actually been using Perl's back ticks and system (and not so much exec)
for years, using Activestate perl, but this is the first time I tried to use
them to run a program compiled using gcc within cygwin when I am running a
perl program from Windows CMD console.
Here is a little perl script that invokes a program (qlt is a C++ program I
wrote, and which I can compile using either MSVC++ or gcc):
use strict;
my $op = `./qlt.exe 6 2 2011 -1 10 12 2011 50 47 0.00 0.05 0.20`;
print "$op\n";
If I compile qlt.exe using MSVC++, then it runs fine and produces the
following output:
Compilation started at Thu Sep 15 08:38:28
C:/Perl64/bin\perl.exe -w c:/cygwin/home/Ted/Work/test.cygwin.perl.pl
Valuation date = February 6th, 2011
Option type = Put
Maturity = December 10th, 2011
Underlying price = 50
Strike = 47
Risk-free int. rate = 5.00 %
Dividend yield = 0.00 %
Volatility = 20.00 %
Option price : 1.5465
Delta : -0.25516
Elasticity : -8.2498
Gamma : 0.035025
Vega : 0.1473
Theta : -0.0028384
Rho : -0.12032
Implied vol. : 20.00 %
Compilation finished at Thu Sep 15 08:38:29
However, when I compile the program using gcc within cygwin (and run it the
same way - Activestate perl from a Windows' CMD console, no output is
produced, and if I try to run qlt from Windows' CMD, it complains about a
missing DLL and dies..
So, I found a fix in terms of adding cygwin/bin to the path. That lets me
run the programs I compile using gcc within cygwin's bash shell in the same
way I run programs I compile using MSVC++. The downside is that I was
reluctant to make the cygwin programs themselves visible within Windows' CMD
shell as I was concerned about the possibility that doing so might break some
other Windows applications I use.
NB: this isn't a significant problem for this particular program (after all, I
have both MSVC++ and gcc/cygwin), but I have a colleague that is sending me
programs he developed on Ubuntu, and it would be a royal pain in the ass to
refactor those in order to build them using MSVC++. But the framework I
developed to invoke all these programs (using Activestate perl CGI programs
with Apache's httpd server, are not set up to run in cygwin (that, too, would
be a royal pain to set up to run within cygwin, especially getting all the
packages I use added alongside cygwin's perl).
Thanks again
Ted
--
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