Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>The errors you got with missing <code>#include &lt;cstring&gt;</code> and <code>#include &lt;memory&gt;</code> is mainly du to a cleanup that happened in GNU headers: inclusion of unnecessary headers were removed and consequently programs not including the proper headers for the features they use face compiling errors.</p> <p>About <code>HAVE_SDL_H</code>, most likely, your Linux distribution is missing packages.</p> <p>You probably need to install the SDL library. Some Linux distributions like Ubuntu split the packages between the library runtime and the dev files so you need to install both packages</p> <p><code>sudo apt-get install libsdl1.2-dev</code></p> <p>Regarding:</p> <pre><code>if g++ -DHAVE_CONFIG_H -I. -I. -I.. -O3 -ffast-math -funroll-all-loops -g -O2 -I/usr/include -I/usr/local/include -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -MT tick.o -MD -MP -MF ".deps/tick.Tpo" -c -o tick.o tick.cpp; \ then mv -f ".deps/tick.Tpo" ".deps/tick.Po"; else rm -f ".deps/tick.Tpo"; exit 1; fi tick.cpp:144:5: error: #error "no timer implemented for your plateform" </code></pre> <p>It indeed fails to compile because <code>HAVE_SDL_H</code> is not defined in <code>config.h</code>. When you look at <a href="http://svn.gna.org/viewcvs/cal3d/trunk/cal3d/examples/cally/configure.in?rev=415&amp;view=markup" rel="nofollow noreferrer"><code>configure.in</code></a> you see it's using <code>AC_CHECK_HEADERS([SDL.h])</code></p> <p>From <a href="http://www.gnu.org/software/autoconf/manual/autoconf.html#AC_005fCHECK_005fHEADERS" rel="nofollow noreferrer">the autoconf manual</a>:</p> <blockquote> <p>— Macro: AC_CHECK_HEADERS (header-file..., [action-if-found], [action-if-not-found], [includes])</p> <p>For each given system header file header-file in the blank-separated argument list that exists, define HAVE_header-file (in all capitals). If action-if-found is given, it is additional shell code to execute when one of the header files is found. You can give it a value of ‘break’ to break out of the loop on the first match. If action-if-not-found is given, it is executed when one of the header files is not found.</p> </blockquote> <p>So, <code>AC_CHECK_HEADERS([SDL.h])</code> makes configure search for <code>SDL.h</code> in <code>/usr/include</code> and doesn't find it because its (new?) path is <code>/usr/include/SDL/SDL.h</code></p> <p>As a workaround, use <code>CPPFLAGS</code> to add system header search paths when invoking configure:</p> <p><code>./configure CPPFLAGS="-I/usr/include/SDL"</code></p> <p>Now you may want to fix <a href="http://svn.gna.org/viewcvs/cal3d/trunk/cal3d/examples/cally/configure.in?rev=415&amp;view=markup" rel="nofollow noreferrer"><code>configure.in</code></a></p> <p><a href="http://svn.gna.org/viewcvs/cal3d/trunk/cal3d/examples/cally/configure.in?rev=415&amp;view=markup" rel="nofollow noreferrer"><code>configure.in</code></a> uses <code>AM_PATH_SDL(1.2.0)</code> which will end up invoking <code>sdl-config --cflags</code> to define <code>SDL_CFLAGS</code>. (the implementation of <code>AM_PATH_SDL</code> typically lies in the <code>/usr/share/aclocal/sdl.m4</code> file)</p> <pre><code># Check for SDL AM_PATH_SDL(1.2.0) LDFLAGS="$LDFLAGS $SDL_LIBS" CXXFLAGS="$CXXFLAGS $SDL_CFLAGS" AC_CHECK_HEADERS([SDL.h]) AC_LANG_CPLUSPLUS </code></pre> <p><code>sdl-config --cflags</code> returns <code>-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT</code> but those <code>-I</code> and <code>-D</code> directives should not end up in <code>CFLAGS</code> anyway but rather in <code>CPPFLAGS</code> (as per the <a href="http://www.gnu.org/software/autoconf/manual/autoconf.html#index-CPPFLAGS-84" rel="nofollow noreferrer">autoconf manual</a>). Hence I would say there is already something wrong "at the SDL level".</p> <p>Now take a look at the <a href="http://www.gnu.org/software/autoconf/manual/autoconf.html#AC_005fLANG" rel="nofollow noreferrer"><code>AC_LANG</code> documentation</a>:</p> <blockquote> <p>‘C’</p> <p>Do compilation tests using CC and CPP and use extension .c for test programs. Use compilation flags: CPPFLAGS with CPP, and both CPPFLAGS and CFLAGS with CC. </p> <p>‘C++’</p> <p>Do compilation tests using CXX and CXXCPP and use extension .C for test programs. Use compilation flags: CPPFLAGS with CXXCPP, and both CPPFLAGS and CXXFLAGS with CXX.</p> </blockquote> <p>Moving the <code>AC_LANG_CPLUSPLUS</code> up so that it at least above <code>AC_CHECK_HEADERS([SDL.h])</code> should make it now use <code>g++</code> and <code>CXXFLAGS</code> when trying to compile <code>SDL.h</code> which should success since <code>SDL_CFLAGS</code> were added to <code>CXXFLAGS</code>. (again, it should really be <code>SDL_CPPFLAGS</code> but you won't change SDL...)</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload