Michael Riepe
Mon, 29 Jun 2009 23:47:58 -0700
Hi! David Coe wrote:
> Other than calling the c: drive, these seem identical to those obtained
> here. Trying the #include_next directive then gives:
>
> $ echo '#include_next <stdlib.h>' | gcc -E -I import -
> # 1 "<stdin>"
> # 1 "<built-in>"
> # 1 "<command line>"
> # 1 "<stdin>"
> # 1 "import/stdlib.h" 1
>
> # 1 "g:/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/stdlib.h"
> [...]
>
> which worryingly shows no change in calling order.
Of course not. #include_next is normally used inside a .h file, and only
to load the next file in the search order that has the same short name.
Otherwise, it behaves exactly as #include. In particular, it does not
change the search order.
But it does pick up the right files in the right order on your system.
> Anyway, using #include_next <stdlib.h> gives the following symptoms of a
> missing system header whereas #include "/mingw/include/stdlib.h" builds
> to completion.
Then g:/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/stdlib.h
and /mingw/include/stdlib.h might be different files. Ever run a diff on
the two of them?
> g++ -O2 -Wall -g -I../ffmpeg/include/ffmpeg -I../import
> -I/usr/local/include -I.
> -DQT3_SUPPORT -DHAVE_LIB_MAD -DHAVE_LIB_A52 -DHAVE_LIB_AO
> -D__STDC_LIMIT_MACROS
> -D__STDC_CONSTANT_MACROS -I../../qt-3/include/Qt
> -I../../qt-3/include/QtCore -I
> ../../qt-3/include/QtGui -I../../qt-3/include/Qt3Support
> -I../../qt-3/include -
> c -o ../import/stdlib.o ../import/stdlib.cpp
> ../import/stdlib.cpp: In function `int vasprintf(char**, const char*,
> char*)':
> ../import/stdlib.cpp:4: error: `malloc' was not declared in this scope
> ../import/stdlib.cpp:4: warning: unused variable 'malloc'
> make: *** [../import/stdlib.o] Error 1
> make: Leaving directory `/usr/local/dvbcut/src'
A stdlib.h that doesn't declare malloc isn't very std. But this might as
well be a C++ scope/namespace issue.
Speaking of it, I have no idea why stdlib.cpp is a C++ source file (I
didn't write it). It contains only plain C code, and should not be
compiled with g++. import/stdlib.h should guard its declarations with an
"extern "C" {}" block, on the other hand, and #include <stdlib.h>
instead of "stdlib.h".
>>I suppose your MinGW installation is not as "standard" as you think.
>
>
> Clearly this is true (as you guys' Windows build environments work), but
> what ails mine remains a mystery! It may be grasping at straws but I am
> building with a 32-bit toolchain on a 64-bit host. However, any other
> helpful hints greatfully received :-).
Maybe MinGW just doesn't like to be installed on drive G:.
--
Michael "Tired" Riepe <mich...@mr511.de>
X-Tired: Each morning I get up I die a little
------------------------------------------------------------------------------
_______________________________________________
DVBCUT-user mailing list
DVBCUT-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dvbcut-user