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: setting Win32 environment variables in Cygwin


Alex Goldman wrote:
When I execute a *.bat file containing lines like

Set FOO=12345

FOO does not show up in the environment of the Cygwin shell. Further,
if I execute Win32 programs that access the environment, they can not
see FOO either.

It's not clear what you're doing from your description, but if you are opening a Cygwin shell (eg bash), invoking cmd.exe to process the batch file and returning to bash, then you certainly won't see FOO in bash.


Specifically, I need to do

Set PATH=C:\Program Files\Microsoft Visual C++ Toolkit 2003\bin;%PATH%
Set INCLUDE=C:\Program Files\Microsoft Visual C++ Toolkit 2003\include;%INCLUDE%
Set LIB=C:\Program Files\Microsoft Visual Studio .NET
2003\Vc7\lib;C:\Program Files\Microsoft Visual C++ Toolkit
2003\lib;%LIB%

So that VC++ will run properly from the command line. Any suggestions?

There was a question in the last day or two about running Digital/Compaq Visual Fortran from a Cygwin shell. My answer pretty much applies here.


http://cygwin.com/ml/cygwin/2005-07/msg00849.html

I've also expounded on this in the past, mostly in connection with Fortran compilers. A bit of judicious searching might uncover some more info.

You should write bash commands to set the environment variables. You can invoke them at the prompt or bundle them in a bash function and invoke that. (It's no good putting them in a shell script and processing it with /bin/bash: it'll all be forgotten when the subprocess exits.) You do have to be careful with characters that need quoting (backslash, semi-colon, space). You also have to allow for the fact that PATH is automagically converted between Unix and Windows forms, but the others aren't. The above link gives an example of how to deal with all these issues.

By the way, do you really want to *prepend* entries to the LIB and INCLUDE environment variables (as opposed to starting from scratch)? If so, you'd better make sure the existing variables are in the Windows format expected by your compiler. Ending up with INCLUDE set to something like:

C:\Program Files\Microsoft Visual C++ Toolkit 2003\include;/usr/local/include:/usr/include

would not be cool.



--
Mark Hadfield          "Kei puwaha te tai nei, Hoea tahi tatou"
m.hadfield@niwa.co.nz
National Institute for Water and Atmospheric Research (NIWA)


-- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/


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