This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: How do I run a program compiled in cygwin from a program that is running in a Windows CMD shell?


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]