Building panda3D from source code.

My linux distro is not supported(debian 7) so I need to compile from source code.
I am getting an error and I don’t know what to do.
This is the error:

[  1%] Building Bison object built/tmp/p3cppParser_cppBison.o
dtool/src/cppparser/cppBison.yxx:2788 parser name defined to default :"parse"
/usr/share/bison++/bison.cc: In function ‘int cppyyparse()’:
/usr/share/bison++/bison.cc:730:23: error: too few arguments to function ‘int cppyylex(cppyystype*, cppyyltype*)’
dtool/src/cppparser/cppBison.yxx:73:1: note: declared here
dtool/src/cppparser/cppBison.yxx:445:17: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:452:40: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:480:170: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:517:73: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:570:81: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:576:87: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:620:39: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:628:39: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:640:39: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:649:39: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:689:73: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:701:39: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:709:39: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:721:39: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:730:39: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:759:51: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:781:51: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:793:93: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:796:74: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:828:51: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:843:51: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:871:37: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:876:67: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:892:52: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:898:67: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:1149:84: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:1156:84: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:1169:78: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:1192:57: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:1357:83: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:1362:79: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:1371:83: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:1549:112: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:1565:112: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:1613:112: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:1629:112: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:1661:112: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:1677:112: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:1691:83: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:1698:83: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:1713:52: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:1742:52: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:1810:55: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:1822:73: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:1896:74: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:1911:69: error: ‘yylsp’ was not declared in this scope
dtool/src/cppparser/cppBison.yxx:1917:68: error: ‘yylsp’ was not declared in this scope
Storing dependency cache.
Elapsed Time: 2 sec
The following command returned a non-zero value: g++ -ftemplate-depth-30 -fPIC -c -o built/tmp/p3cppParser_cppBison.o -Ibuilt/tmp -Ibuilt/include -I/usr/include/python2.7 -DMAKEPANDA= -Idtool/src/cppparser -pthread -msse2 -O2 built/tmp/cppBison.yxx.cxx
Build terminated.

I hope you can help me. Thanks!

Which version of Panda3D are you trying to compile?

1.8.1, I do because it says it is the latest stable release.

Hmm, well, it appears that perhaps the version of bison you’re using isn’t compatible with how Panda uses it. Are you using GNU bison? Which version? Does your package manager offer you any other implementations or versions of bison?

Ah!That was the issue I had bison++ insalled instead of bison. Now it is at 10% I hope it compiles although I get some warnings. Thanks for the tip.

Damn, more errors!

What kind of errors?

At 28%:

[ 28%] Building Interrogate database built/pandac/input/libp3text.in
[ 28%] Building C++ object built/tmp/p3movies_composite1.o
[ 28%] Building C++ object built/tmp/p3movies_composite2.o
In file included from panda/src/movies/p3movies_composite2.cxx:3:0:
panda/src/movies/ffmpegVirtualFile.cxx: In member function ‘bool FfmpegVirtualFile::open_vfs(const Filename&)’:
panda/src/movies/ffmpegVirtualFile.cxx:123:5: warning: ‘int av_open_input_file(AVFormatContext**, const char*, AVInputFormat*, int, AVFormatParameters*)’ is deprecated (declared at /usr/include/libavformat/avformat.h:1368) [-Wdeprecated-declarations]
panda/src/movies/ffmpegVirtualFile.cxx:123:68: warning: ‘int av_open_input_file(AVFormatContext**, const char*, AVInputFormat*, int, AVFormatParameters*)’ is deprecated (declared at /usr/include/libavformat/avformat.h:1368) [-Wdeprecated-declarations]
panda/src/movies/ffmpegVirtualFile.cxx: In member function ‘bool FfmpegVirtualFile::open_subfile(const SubfileInfo&)’:
panda/src/movies/ffmpegVirtualFile.cxx:179:5: warning: ‘int av_open_input_file(AVFormatContext**, const char*, AVInputFormat*, int, AVFormatParameters*)’ is deprecated (declared at /usr/include/libavformat/avformat.h:1368) [-Wdeprecated-declarations]
panda/src/movies/ffmpegVirtualFile.cxx:179:68: warning: ‘int av_open_input_file(AVFormatContext**, const char*, AVInputFormat*, int, AVFormatParameters*)’ is deprecated (declared at /usr/include/libavformat/avformat.h:1368) [-Wdeprecated-declarations]
panda/src/movies/ffmpegVirtualFile.cxx: In member function ‘void FfmpegVirtualFile::close()’:
panda/src/movies/ffmpegVirtualFile.cxx:197:5: warning: ‘void av_close_input_file(AVFormatContext*)’ is deprecated (declared at /usr/include/libavformat/avformat.h:1580) [-Wdeprecated-declarations]
panda/src/movies/ffmpegVirtualFile.cxx:197:40: warning: ‘void av_close_input_file(AVFormatContext*)’ is deprecated (declared at /usr/include/libavformat/avformat.h:1580) [-Wdeprecated-declarations]
panda/src/movies/ffmpegVirtualFile.cxx: In static member function ‘static void FfmpegVirtualFile::register_protocol()’:
panda/src/movies/ffmpegVirtualFile.cxx:249:3: warning: ‘int av_register_protocol2(URLProtocol*, int)’ is deprecated (declared at /usr/include/libavformat/avio.h:247) [-Wdeprecated-declarations]
panda/src/movies/ffmpegVirtualFile.cxx:249:52: warning: ‘int av_register_protocol2(URLProtocol*, int)’ is deprecated (declared at /usr/include/libavformat/avio.h:247) [-Wdeprecated-declarations]
In file included from panda/src/movies/p3movies_composite2.cxx:4:0:
panda/src/movies/ffmpegAudioCursor.cxx: In constructor ‘FfmpegAudioCursor::FfmpegAudioCursor(FfmpegAudio*)’:
panda/src/movies/ffmpegAudioCursor.cxx:55:7: warning: ‘int av_find_stream_info(AVFormatContext*)’ is deprecated (declared at /usr/include/libavformat/avformat.h:1412) [-Wdeprecated-declarations]
panda/src/movies/ffmpegAudioCursor.cxx:55:38: warning: ‘int av_find_stream_info(AVFormatContext*)’ is deprecated (declared at /usr/include/libavformat/avformat.h:1412) [-Wdeprecated-declarations]
panda/src/movies/ffmpegAudioCursor.cxx:81:6: warning: ‘int avcodec_open(AVCodecContext*, AVCodec*)’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:4035) [-Wdeprecated-declarations]
panda/src/movies/ffmpegAudioCursor.cxx:81:42: warning: ‘int avcodec_open(AVCodecContext*, AVCodec*)’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:4035) [-Wdeprecated-declarations]
panda/src/movies/ffmpegAudioCursor.cxx: In member function ‘bool FfmpegAudioCursor::reload_buffer()’:
panda/src/movies/ffmpegAudioCursor.cxx:218:17: warning: ‘int avcodec_decode_audio3(AVCodecContext*, int16_t*, int*, AVPacket*)’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:4131) [-Wdeprecated-declarations]
panda/src/movies/ffmpegAudioCursor.cxx:218:74: warning: ‘int avcodec_decode_audio3(AVCodecContext*, int16_t*, int*, AVPacket*)’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:4131) [-Wdeprecated-declarations]
panda/src/movies/ffmpegAudioCursor.cxx: In member function ‘virtual void FfmpegAudioCursor::seek(double)’:
panda/src/movies/ffmpegAudioCursor.cxx:266:6: warning: ‘int avcodec_open(AVCodecContext*, AVCodec*)’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:4035) [-Wdeprecated-declarations]
panda/src/movies/ffmpegAudioCursor.cxx:266:42: warning: ‘int avcodec_open(AVCodecContext*, AVCodec*)’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:4035) [-Wdeprecated-declarations]
In file included from panda/src/movies/p3movies_composite2.cxx:5:0:
panda/src/movies/ffmpegVideoCursor.cxx: In member function ‘bool FfmpegVideoCursor::open_stream()’:
panda/src/movies/ffmpegVideoCursor.cxx:512:7: warning: ‘int av_find_stream_info(AVFormatContext*)’ is deprecated (declared at /usr/include/libavformat/avformat.h:1412) [-Wdeprecated-declarations]
panda/src/movies/ffmpegVideoCursor.cxx:512:38: warning: ‘int av_find_stream_info(AVFormatContext*)’ is deprecated (declared at /usr/include/libavformat/avformat.h:1412) [-Wdeprecated-declarations]
panda/src/movies/ffmpegVideoCursor.cxx:544:7: warning: ‘int avcodec_open(AVCodecContext*, AVCodec*)’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:4035) [-Wdeprecated-declarations]
panda/src/movies/ffmpegVideoCursor.cxx:544:43: warning: ‘int avcodec_open(AVCodecContext*, AVCodec*)’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:4035) [-Wdeprecated-declarations]
panda/src/movies/ffmpegVideoCursor.cxx: In member function ‘void FfmpegVideoCursor::export_frame(FfmpegVideoCursor::FfmpegBuffer*)’:
panda/src/movies/ffmpegVideoCursor.cxx:1164:75: error: ‘img_convert’ was not declared in this scope
panda/src/movies/ffmpegVideoCursor.cxx:1172:75: error: ‘img_convert’ was not declared in this scope
Storing dependency cache.
Elapsed Time: 18 min 30 sec
The following command returned a non-zero value: g++ -ftemplate-depth-30 -fPIC -c -o built/tmp/p3movies_composite2.o -Ibuilt/tmp -Ibuilt/include -I/usr/include/python2.7 -I/usr/include/libavformat -I/usr/include/libavcodec -I/usr/include/libavutil -DMAKEPANDA= -Ipanda/src/movies -pthread -msse2 -O2 -DBUILDING_PANDA panda/src/movies/p3movies_composite2.cxx
Build terminated.

1.8.1 is not compatible with recent versions of ffmpeg. You should consider checking Panda out from CVS instead, or add --no-ffmpeg.

How can I checkout panda3d from CVS?

cvs -d :pserver:anonymous@panda3d.cvs.sourceforge.net:/cvsroot/panda3d co -P panda3d

This will create a “panda3d” directory containing the latest source.

I provide Panda3D for Debian 7 :slight_smile: