From: Erwin W. <wat...@xs...> - 2010-05-30 16:27:28
|
Hi, I tried to set up the MSYS dvlpr environment. I unpacked msysDVLPR-1.0.0-alpha-1.tar.gz in /msys/ On top of that I unpacked binutils-2.19.51-3-msys-1.0.13-bin.tar.bz2 gcc-3.4.4-3-msys-1.0.13-bin.tar.bz2 w32api-3.14-3-msys-1.0.12-dev.tar.bz2 gettext-0.17-2-msys-1.0.13-dev.tar.bz2 libiconv-1.13.1-2-msys-1.0.13-dev.tar.bz2 When I build a program I get these error messages: stdio.h: No such file or directory string.h: No such file or directory ... All standard header files ar not found. How should I fix this? As a workaround I now add -I/msys/include to build my program. regards, -- Erwin Waterlander |
From: Charles W. <cwi...@us...> - 2010-05-30 18:20:32
|
On 5/30/2010 12:27 PM, Erwin Waterlander wrote: > I unpacked msysDVLPR-1.0.0-alpha-1.tar.gz in /msys/ You don't need msysDVLPR at all; it has been completely obsoleted by the new packages. However, if you DID want to use the old gcc-2.95.3 it provided, you wouldn't install it in /msys/ anyway. It needs to be installed in /. > On top of that I unpacked > > binutils-2.19.51-3-msys-1.0.13-bin.tar.bz2 > gcc-3.4.4-3-msys-1.0.13-bin.tar.bz2 > w32api-3.14-3-msys-1.0.12-dev.tar.bz2 > gettext-0.17-2-msys-1.0.13-dev.tar.bz2 > libiconv-1.13.1-2-msys-1.0.13-dev.tar.bz2 The same is true of these packages. All -msys- packages should be installed into /. Technically, they have all been compiled with --prefix=/usr, but since MSYS maps /usr to /, that's the same thing. But /msys/ is right out. > When I build a program I get these error messages: > stdio.h: No such file or directory > string.h: No such file or directory > ... > All standard header files ar not found. How should I fix this? You're missing msysCORE-*-dev > > As a workaround I now add -I/msys/include to build my program. Since that's where you installed msysDVLPR, this means you are using old include files that may not have been updated since MSYS-1.0.<small number> days. Don't do that. See this message http://article.gmane.org/gmane.comp.gnu.mingw.devel/3852 and look at the msys-system-builder.xml manifest for a list of what all you need to install to compile MSYS programs. -- Chuck |
From: Erwin W. <wat...@xs...> - 2010-05-30 20:16:38
|
Charles Wilson schreef, Op 30-5-2010 20:20: > On 5/30/2010 12:27 PM, Erwin Waterlander wrote: > >> I unpacked msysDVLPR-1.0.0-alpha-1.tar.gz in /msys/ >> > > You don't need msysDVLPR at all; it has been completely obsoleted by the > new packages. However, if you DID want to use the old gcc-2.95.3 it > That is great. I had no intention to use gcc 2.95. > provided, you wouldn't install it in /msys/ anyway. It needs to be > installed in /. > > This means the msys-gcc is always in PATH. If I want to switch to mingw-gcc, I just add that first in PATH I assume. >> On top of that I unpacked >> >> binutils-2.19.51-3-msys-1.0.13-bin.tar.bz2 >> gcc-3.4.4-3-msys-1.0.13-bin.tar.bz2 >> w32api-3.14-3-msys-1.0.12-dev.tar.bz2 >> gettext-0.17-2-msys-1.0.13-dev.tar.bz2 >> libiconv-1.13.1-2-msys-1.0.13-dev.tar.bz2 >> > > The same is true of these packages. All -msys- packages should be > installed into /. Technically, they have all been compiled with > --prefix=/usr, but since MSYS maps /usr to /, that's the same thing. But > /msys/ is right out. > OK. I was following old instructions on the WIKI. > >> When I build a program I get these error messages: >> stdio.h: No such file or directory >> string.h: No such file or directory >> ... >> All standard header files ar not found. How should I fix this? >> > > You're missing msysCORE-*-dev > > Thanks, I've got it. >> As a workaround I now add -I/msys/include to build my program. >> > > Since that's where you installed msysDVLPR, this means you are using old > include files that may not have been updated since MSYS-1.0.<small > number> days. Don't do that. > > See this message > http://article.gmane.org/gmane.comp.gnu.mingw.devel/3852 > and look at the msys-system-builder.xml manifest for a list of what all > you need to install to compile MSYS programs. > > Thanks. -- Erwin Waterlander |
From: Charles W. <cwi...@us...> - 2010-05-31 03:11:48
|
On 5/30/2010 4:16 PM, Erwin Waterlander wrote: > Charles Wilson schreef, Op 30-5-2010 20:20: >> provided, you wouldn't install it in /msys/ anyway. It needs to be >> installed in /. >> >> > This means the msys-gcc is always in PATH. If I want to switch to > mingw-gcc, I just add that first in PATH I assume. Right. If you look in msys.bat, you'll see that if it is invoked with the 'MSYS' command line option, then it sets the variable MSYSTEM to MSYS (rather than the default MINGW32). Then, the default /etc/profile sets PATH differently depending on that value of MSYSTEM: if [ $MSYSTEM == MINGW32 ]; then export PATH=".:/usr/local/bin:/mingw/bin:/bin:$PATH" else export PATH=".:/usr/local/bin:/bin:/mingw/bin:$PATH" fi Now, personally, I don't think /usr/local/bin should precede /mingw/bin in the MINGW32 case, because in my conception, the stuff under /usr is all "msys-ish"; mingw-ish stuff should go under /mingw (say, /mingw/local). (And I hate having '.' in my PATH, but that's just me). But that's a discussion for another thread. >>> On top of that I unpacked >>> >>> binutils-2.19.51-3-msys-1.0.13-bin.tar.bz2 >>> gcc-3.4.4-3-msys-1.0.13-bin.tar.bz2 >>> w32api-3.14-3-msys-1.0.12-dev.tar.bz2 >>> gettext-0.17-2-msys-1.0.13-dev.tar.bz2 >>> libiconv-1.13.1-2-msys-1.0.13-dev.tar.bz2 >>> >> >> The same is true of these packages. All -msys- packages should be >> installed into /. Technically, they have all been compiled with >> --prefix=/usr, but since MSYS maps /usr to /, that's the same thing. But >> /msys/ is right out. >> > OK. I was following old instructions on the WIKI. Hmm. That's strange -- and should be corrected. The Package Identification Howto http://www.mingw.org/PackageIdentificationHOWTO recommends installing into / for all -msys- packages, and /mingw for all -mingw32- packages. Which WIKI page were you reading? Side note: even the Package Identification Howto probably needs updating slightly, once Earnie finishes re-arranging the FRS. That Howto includes some assumptions about the FRS layout. -- Chuck |
From: Erwin W. <wat...@xs...> - 2010-05-31 06:24:11
|
Charles Wilson schreef, Op 31-5-2010 5:11: > On 5/30/2010 4:16 PM, Erwin Waterlander wrote: > >> Charles Wilson schreef, Op 30-5-2010 20:20: >> >>> provided, you wouldn't install it in /msys/ anyway. It needs to be >>> installed in /. >>> >>> >>> >> This means the msys-gcc is always in PATH. If I want to switch to >> mingw-gcc, I just add that first in PATH I assume. >> > > Right. If you look in msys.bat, you'll see that if it is invoked with > the 'MSYS' command line option, then it sets the variable MSYSTEM to > MSYS (rather than the default MINGW32). Then, the default /etc/profile > sets PATH differently depending on that value of MSYSTEM: > > if [ $MSYSTEM == MINGW32 ]; then > export PATH=".:/usr/local/bin:/mingw/bin:/bin:$PATH" > else > export PATH=".:/usr/local/bin:/bin:/mingw/bin:$PATH" > fi > > > It's clear now. Mingw should be in /mingw/. > > >> OK. I was following old instructions on the WIKI. >> > > Hmm. That's strange -- and should be corrected. The Package > Identification Howto http://www.mingw.org/PackageIdentificationHOWTO > recommends installing into / for all -msys- packages, and /mingw for all > -mingw32- packages. > > Which WIKI page were you reading? > I was following the HOWTO links from the main wiki page and ended up in http://www.mingw.org/wiki/HOWTO_Create_an_MSYS_Build_Environment -- Erwin Waterlander |
From: Erwin W. <wat...@xs...> - 2010-05-31 06:18:58
|
Erwin Waterlander schreef, Op 30-5-2010 22:16: > Charles Wilson schreef, Op 30-5-2010 20:20: > >> provided, you wouldn't install it in /msys/ anyway. It needs to be >> installed in /. >> >> >> > This means the msys-gcc is always in PATH. If I want to switch to > mingw-gcc, I just add that first in PATH I assume. > > I see now. If I install MinGW in /mingw, mingw-gcc is the default comiler (first in PATH). When I start msys with "msys.bat MSYS" msys-gcc (in /bin) is first in path. I always had MinGW in a different location. I used MinGW for many years without Msys (because of the rxvt terminal). -- Erwin Waterlander |
From: Earnie <ea...@us...> - 2010-05-31 20:30:49
|
Charles Wilson wrote: > On 5/30/2010 12:27 PM, Erwin Waterlander wrote: >> I unpacked msysDVLPR-1.0.0-alpha-1.tar.gz in /msys/ > > You don't need msysDVLPR at all; it has been completely obsoleted by the > new packages. However, if you DID want to use the old gcc-2.95.3 it > provided, you wouldn't install it in /msys/ anyway. It needs to be > installed in /. > >> On top of that I unpacked >> >> binutils-2.19.51-3-msys-1.0.13-bin.tar.bz2 >> gcc-3.4.4-3-msys-1.0.13-bin.tar.bz2 >> w32api-3.14-3-msys-1.0.12-dev.tar.bz2 >> gettext-0.17-2-msys-1.0.13-dev.tar.bz2 >> libiconv-1.13.1-2-msys-1.0.13-dev.tar.bz2 > > The same is true of these packages. All -msys- packages should be > installed into /. Technically, they have all been compiled with > --prefix=/usr, but since MSYS maps /usr to /, that's the same thing. But > /msys/ is right out. > Really!? I put my msys developer tools in /msys as well. But for help with it on this list, yes, it belongs in / because you are on your own otherwise. -- Earnie -- http://www.for-my-kids.com |
From: Charles W. <cwi...@us...> - 2010-05-31 23:57:05
|
On 5/31/2010 4:30 PM, Earnie wrote: > Charles Wilson wrote: >> But >> /msys/ is right out. >> > > Really!? I put my msys developer tools in /msys as well. But for help > with it on this list, yes, it belongs in / because you are on your own > otherwise. Well, trying to link against any pre-built library via libtool (e.g. .la files) won't work. Unless you take care with PATH, you'll invoke autoconf, automake, libtool, and the gettext utilities over in /mingw/bin, which won't do what you want (since they don't know about --host=msys). Worse, if you DO fix PATH so that /msys/bin is first, then you'll invoke the "correct" autotool apps, but they will all look in /share/aclocal, /share/autoconf, and /share/automake1.11 for their support files -- and won't find them. Oh, and IIRC, msys-gcc doesn't have the special relocation hacks that MinGW-gcc does: $ strings /lib/gcc/i686-pc-msys/3.4.4/cc1.exe | grep include /usr/include /usr/lib/gcc/i686-pc-msys/3.4.4/../../../../i686-pc-msys/include /usr/lib/gcc/i686-pc-msys/3.4.4/../../../../i686-pc-msys/sys-include /usr/local/include /usr/lib/gcc/i686-pc-msys/3.4.4/../../../../include/c++/3.4.4/backward /usr/lib/gcc/i686-pc-msys/3.4.4/../../../../include/c++/3.4.4/i686-pc-msys /usr/lib/gcc/i686-pc-msys/3.4.4/../../../../include/c++/3.4.4 /usr/lib/gcc/i686-pc-msys/3.4.4/include $ strings /bin/gcc.exe | grep lib /usr/lib/ /lib/ /usr/lib/gcc/ /usr/libexec/gcc/ I'm thinking that might be a problem...but YMMV. -- Chuck |