Workaround for cygwin's way of linking folders?

L A Walsh cygwin@tlinx.org
Mon Dec 7 07:27:54 GMT 2020


On 2020/12/06 14:41, Johnathan Schneider via Cygwin wrote:
> Hi all,
>
> I'm setting up a cross platform development environment using Cygwin. Upon attempting to use Cygwin's CMake that is natively bundled, I discovered that Cygwin goes looking for the gcc in /usr/bin/cc,
----
    If you go into 'bash' under cygwin, what do you see in /usr/bin?
/usr/bin is only a valid path inside programs that are running on cygwin --
if you run programs outside of cygwin, say directly from Windows, they 
won't see
them.

    Cmake would likely be in the same folder as gcc.  How are you invoking
Cmake?  If you are running cmake from, say, the cygwin path of /bin 
(assuming
you have cygwin installed at C:\ and have your cygwin mount prefix set 
to '/'.
In bash, type mount -p and you should see something like:
>  mount -p

Prefix              Type         Flags                                          
/                   user         binmode                                        


Just like windows has various magic folders that show up under explorer, but
don't really exist, cygwin does too, but only cygwin utils see the
cygwin-folders.

    FWIW, /bin from a cygwin install is mounted (within cygwin) on 
/usr/bin, so
the contents should be the same.

    If you want to make use of windows+cygwin at the same time, it's best
to install cygwin at 'C:\' and set you mount prefix like I have above, then
you will get more commonality between windows+cygwin.  For example, to make
/usr/bin appear under window, I have a symlink at C:/usr/bin that points to
C:/bin.

Under windows, a 'dir' of C:\usr will show (from cmd.exe, some lines removed
for brevity):
C:\Users\linda>dir \usr
 Volume in drive C is System Disk

 Directory of C:\usr

2020/05/17  17:11    <DIR>          .
2020/05/17  17:11    <DIR>          ..
2018/05/19  09:42    <SYMLINKD>     bin [..\bin]
2020/10/07  09:35    <DIR>          include
2018/05/19  09:41    <SYMLINKD>     lib [..\lib]
2018/05/17  11:20    <SYMLINKD>     lib64 [..\lib]
2020/12/06  23:25    <SYMLINKD>     sbin [..\sbin]
2020/11/03  20:38    <DIR>          share
2020/10/07  08:37    <DIR>          src
2020/05/17  17:11    <DIR>          x86_64-pc-cygwin
               0 File(s)              0 bytes
              17 Dir(s)  150,639,538,176 bytes free

>  
> Alas, my question - what is the recommended workaround?
>   
---
    Look for cygwin paths from a cygwin shell.  That's the start.
Making win+cyg play nice, involves little bits like symlinks
like I used above.  It's not officially supported by the cygwin, but
I find such things convenient.




More information about the Cygwin mailing list