Error compiling Zoneminder

Support and queries relating to all previous versions of ZoneMinder
jubstuff
Posts: 4
Joined: Fri Dec 21, 2007 5:00 pm

Error compiling Zoneminder

Post by jubstuff »

Hi all! I'm trying to install zoneminder 1.23 from source but i'll keep having error messages :( The "configure" part goes well, but when i "make" here it is what i get:

Code: Select all

make  all-recursive
make[1]: Entering directory `/home/justin/Desktop/ZoneMinder-1.23.0'
Making all in src
make[2]: Entering directory `/home/justin/Desktop/ZoneMinder-1.23.0/src'
g++ -DHAVE_CONFIG_H -I. -I..  -I/usr/lib/mysql/include -I/usr/lib/include   -g -O2 -MT zmc.o -MD -MP -MF .deps/zmc.Tpo -c -o zmc.o zmc.cpp
mv -f .deps/zmc.Tpo .deps/zmc.Po
g++ -DHAVE_CONFIG_H -I. -I..  -I/usr/lib/mysql/include -I/usr/lib/include   -g -O2 -MT zm.o -MD -MP -MF .deps/zm.Tpo -c -o zm.o zm.cpp
mv -f .deps/zm.Tpo .deps/zm.Po
g++ -DHAVE_CONFIG_H -I. -I..  -I/usr/lib/mysql/include -I/usr/lib/include   -g -O2 -MT zm_db.o -MD -MP -MF .deps/zm_db.Tpo -c -o zm_db.o zm_db.cpp
mv -f .deps/zm_db.Tpo .deps/zm_db.Po
g++ -DHAVE_CONFIG_H -I. -I..  -I/usr/lib/mysql/include -I/usr/lib/include   -g -O2 -MT zm_config.o -MD -MP -MF .deps/zm_config.Tpo -c -o zm_config.o zm_config.cpp
zm_config.cpp:27: warning: deprecated conversion from string constant to ‘char*’
zm_config.cpp:27: warning: deprecated conversion from string constant to ‘char*’
zm_config.cpp:27: warning: deprecated conversion from string constant to ‘char*’
zm_config.cpp:27: warning: deprecated conversion from string constant to ‘char*’
zm_config.cpp:27: warning: deprecated conversion from string constant to ‘char*’
mv -f .deps/zm_config.Tpo .deps/zm_config.Po
g++ -DHAVE_CONFIG_H -I. -I..  -I/usr/lib/mysql/include -I/usr/lib/include   -g -O2 -MT zm_coord.o -MD -MP -MF .deps/zm_coord.Tpo -c -o zm_coord.o zm_coord.cpp
mv -f .deps/zm_coord.Tpo .deps/zm_coord.Po
g++ -DHAVE_CONFIG_H -I. -I..  -I/usr/lib/mysql/include -I/usr/lib/include   -g -O2 -MT zm_box.o -MD -MP -MF .deps/zm_box.Tpo -c -o zm_box.o zm_box.cpp
mv -f .deps/zm_box.Tpo .deps/zm_box.Po
g++ -DHAVE_CONFIG_H -I. -I..  -I/usr/lib/mysql/include -I/usr/lib/include   -g -O2 -MT zm_poly.o -MD -MP -MF .deps/zm_poly.Tpo -c -o zm_poly.o zm_poly.cpp
mv -f .deps/zm_poly.Tpo .deps/zm_poly.Po
g++ -DHAVE_CONFIG_H -I. -I..  -I/usr/lib/mysql/include -I/usr/lib/include   -g -O2 -MT zm_image.o -MD -MP -MF .deps/zm_image.Tpo -c -o zm_image.o zm_image.cpp
mv -f .deps/zm_image.Tpo .deps/zm_image.Po
g++ -DHAVE_CONFIG_H -I. -I..  -I/usr/lib/mysql/include -I/usr/lib/include   -g -O2 -MT zm_stream.o -MD -MP -MF .deps/zm_stream.Tpo -c -o zm_stream.o zm_stream.cpp
mv -f .deps/zm_stream.Tpo .deps/zm_stream.Po
g++ -DHAVE_CONFIG_H -I. -I..  -I/usr/lib/mysql/include -I/usr/lib/include   -g -O2 -MT zm_event.o -MD -MP -MF .deps/zm_event.Tpo -c -o zm_event.o zm_event.cpp
mv -f .deps/zm_event.Tpo .deps/zm_event.Po
g++ -DHAVE_CONFIG_H -I. -I..  -I/usr/lib/mysql/include -I/usr/lib/include   -g -O2 -MT zm_zone.o -MD -MP -MF .deps/zm_zone.Tpo -c -o zm_zone.o zm_zone.cpp
mv -f .deps/zm_zone.Tpo .deps/zm_zone.Po
g++ -DHAVE_CONFIG_H -I. -I..  -I/usr/lib/mysql/include -I/usr/lib/include   -g -O2 -MT zm_camera.o -MD -MP -MF .deps/zm_camera.Tpo -c -o zm_camera.o zm_camera.cpp
mv -f .deps/zm_camera.Tpo .deps/zm_camera.Po
g++ -DHAVE_CONFIG_H -I. -I..  -I/usr/lib/mysql/include -I/usr/lib/include   -g -O2 -MT zm_local_camera.o -MD -MP -MF .deps/zm_local_camera.Tpo -c -o zm_local_camera.o zm_local_camera.cpp
mv -f .deps/zm_local_camera.Tpo .deps/zm_local_camera.Po
g++ -DHAVE_CONFIG_H -I. -I..  -I/usr/lib/mysql/include -I/usr/lib/include   -g -O2 -MT zm_remote_camera.o -MD -MP -MF .deps/zm_remote_camera.Tpo -c -o zm_remote_camera.o zm_remote_camera.cpp
mv -f .deps/zm_remote_camera.Tpo .deps/zm_remote_camera.Po
g++ -DHAVE_CONFIG_H -I. -I..  -I/usr/lib/mysql/include -I/usr/lib/include   -g -O2 -MT zm_file_camera.o -MD -MP -MF .deps/zm_file_camera.Tpo -c -o zm_file_camera.o zm_file_camera.cpp
mv -f .deps/zm_file_camera.Tpo .deps/zm_file_camera.Po
g++ -DHAVE_CONFIG_H -I. -I..  -I/usr/lib/mysql/include -I/usr/lib/include   -g -O2 -MT zm_monitor.o -MD -MP -MF .deps/zm_monitor.Tpo -c -o zm_monitor.o zm_monitor.cpp
mv -f .deps/zm_monitor.Tpo .deps/zm_monitor.Po
g++ -DHAVE_CONFIG_H -I. -I..  -I/usr/lib/mysql/include -I/usr/lib/include   -g -O2 -MT zm_user.o -MD -MP -MF .deps/zm_user.Tpo -c -o zm_user.o zm_user.cpp
mv -f .deps/zm_user.Tpo .deps/zm_user.Po
g++ -DHAVE_CONFIG_H -I. -I..  -I/usr/lib/mysql/include -I/usr/lib/include   -g -O2 -MT zm_mpeg.o -MD -MP -MF .deps/zm_mpeg.Tpo -c -o zm_mpeg.o zm_mpeg.cpp
zm_mpeg.cpp: In destructor ‘VideoStream::~VideoStream()’:
zm_mpeg.cpp:281: error: cannot convert ‘ByteIOContext’ to ‘ByteIOContext*’ for argument ‘1’ to ‘int url_fclose(ByteIOContext*)’
zm_mpeg.cpp: In member function ‘double VideoStream::EncodeFrame(uint8_t*, int, bool, unsigned int)’:
zm_mpeg.cpp:325: warning: ‘img_convert’ is deprecated (declared at /usr/include/ffmpeg/avcodec.h:2636)
zm_mpeg.cpp:325: warning: ‘img_convert’ is deprecated (declared at /usr/include/ffmpeg/avcodec.h:2636)
make[2]: *** [zm_mpeg.o] Error 1
make[2]: Leaving directory `/home/justin/Desktop/ZoneMinder-1.23.0/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/justin/Desktop/ZoneMinder-1.23.0'
make: *** [all] Error 2
What could it be??
Thankx to anyone :)
jubstuff
Posts: 4
Joined: Fri Dec 21, 2007 5:00 pm

Post by jubstuff »

I've managed to eliminate the warnings installing the latest ffmpeg-svn, but the error

Code: Select all

zm_mpeg.cpp:281: error: cannot convert ‘ByteIOContext’ to ‘ByteIOContext*’ for argument ‘1’ to ‘int url_fclose(ByteIOContext*)’
still occurs....any idea????
User avatar
wildpossum
Posts: 38
Joined: Wed Jul 04, 2007 5:40 am
Location: Sydney - AUSTRALIA

Post by wildpossum »

I too am having the same problem with just a normal config. See below:

<make>
g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/include -I/usr/local/include -g -O2 -MT zm_mpeg.o -MD -MP -MF .deps/zm_mpeg.Tpo -c -o zm_mpeg.o zm_mpeg.cpp
zm_mpeg.cpp: In destructor ‘VideoStream::~VideoStream()’:
zm_mpeg.cpp:281: error: cannot convert ‘ByteIOContext’ to ‘ByteIOContext*’ for argument ‘1’ to ‘int url_fclose(ByteIOContext*)’
zm_mpeg.cpp: In member function ‘double VideoStream::EncodeFrame(uint8_t*, int, bool, unsigned int)’:
zm_mpeg.cpp:325: warning: ‘img_convert’ is deprecated (declared at /usr/include/ffmpeg/avcodec.h:2410)
zm_mpeg.cpp:325: warning: ‘img_convert’ is deprecated (declared at /usr/include/ffmpeg/avcodec.h:2410)
make[2]: *** [zm_mpeg.o] Error 1
make[2]: Leaving directory `/usr/src/ZM/ZM-Sources/ZoneMinder-1.23.0/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/src/ZM/ZM-Sources/ZoneMinder-1.23.0'
make: *** [all] Error 2
</make>

Helpful suggestions please.
Grahame
User avatar
wildpossum
Posts: 38
Joined: Wed Jul 04, 2007 5:40 am
Location: Sydney - AUSTRALIA

Post by wildpossum »

To assist further here is my config arguments.

$ ./configure --with-libarch=lib64 --with-extralibs=-lmp3lame --with-mysql=/usr --with-ffmpeg=/usr/local --with-webdir=/var/www/html --with-cgidir=/var/www/cgi-bin --with-webuser=apache --with-webgroup=apache --enable-crashtrace=yes --enable-debug=yes ZM_DB_HOST=ringtail.wildpossum.com ZM_DB_NAME=zm ZM_DB_USER=zmuser ZM_DB_PASS=xxxxxx
Grahame
User avatar
wildpossum
Posts: 38
Joined: Wed Jul 04, 2007 5:40 am
Location: Sydney - AUSTRALIA

Post by wildpossum »

OK. The same issue has propted itself up in compiling 1.22.x as well with the latest ffmpeg sources. I simply changed line:280 of zm_mpeg.cpp to be:

From: #if ZM_FFMPEG_SVN

To: #if !ZM_FFMPEG_SVN

NB: the '!' interprets as NOT ZM_FFMPEG_SVN all compiling now works OK. Mind you this is a logic rearrangement of the source condition on how to close the output file based on whether the source comes from SVN or not, so I am not sure of the consequences of doing so - just be aware of it, until an official patch is made.
Grahame
jubstuff
Posts: 4
Joined: Fri Dec 21, 2007 5:00 pm

Post by jubstuff »

Thank you!! It worked like a charm!! :D
User avatar
zoneminder
Site Admin
Posts: 5215
Joined: Wed Jul 09, 2003 2:07 pm
Location: Bristol, UK
Contact:

Post by zoneminder »

There was a change in ffmpeg which meant that 1.23.0 had to change to reflect it. Unless they have changed it back again it should be ok in 1.23.0
Phil
decibel83
Posts: 80
Joined: Tue Dec 06, 2005 5:22 pm

Post by decibel83 »

zoneminder wrote:There was a change in ffmpeg which meant that 1.23.0 had to change to reflect it. Unless they have changed it back again it should be ok in 1.23.0
No, I have the same problem compiling the 1.23.1 version...
Coudl you help me please?
nsedley
Posts: 3
Joined: Sun Jan 20, 2008 8:27 pm

Post by nsedley »

decibel83 wrote:
zoneminder wrote:There was a change in ffmpeg which meant that 1.23.0 had to change to reflect it. Unless they have changed it back again it should be ok in 1.23.0
No, I have the same problem compiling the 1.23.1 version...
Coudl you help me please?
Ditto on CentOS 5 with all the latest updates
User avatar
johabba
Posts: 26
Joined: Mon Jan 24, 2005 11:01 am

Post by johabba »

same problem here on zm 1.23.1 and debian etch fresh install. i'm using ffmpeg from the debian distro. changing the FFMPEG_SVN check allowed zm to compile.
User avatar
zoneminder
Site Admin
Posts: 5215
Joined: Wed Jul 09, 2003 2:07 pm
Location: Bristol, UK
Contact:

Post by zoneminder »

This is odd as if I get the latest ffmpeg I can compile with no problems. Can you look in your package for the ffmpeg version.h file and post what it's contents are.

Mine is as follows

Code: Select all

#define FFMPEG_VERSION "SVN-r11597"
The trouble is there is no indication of when the interfaces change from the ffmpeg lot so I have nothing to go on to say which version of the interface to use.
Phil
Hatchet
Posts: 15
Joined: Tue Jun 26, 2007 2:10 pm

Post by Hatchet »

I had these make problems also with the Fedora 8 ffmpeg rpm installed. I had to remove the ffmpeg RPM, then install the SVN ffmpeg. No problems after that.
decibel83
Posts: 80
Joined: Tue Dec 06, 2005 5:22 pm

Post by decibel83 »

zoneminder wrote:This is odd as if I get the latest ffmpeg I can compile with no problems. Can you look in your package for the ffmpeg version.h file and post what it's contents are.

Mine is as follows

Code: Select all

#define FFMPEG_VERSION "SVN-r11597"
The trouble is there is no indication of when the interfaces change from the ffmpeg lot so I have nothing to go on to say which version of the interface to use.
My version is "SVN-r11827", and ZoneMinder does not compile.
What is the "official" solution of this problem?
Shall I change the "#if !ZM_FFMPEG_SVN" line, or I have to do something else?
User avatar
zoneminder
Site Admin
Posts: 5215
Joined: Wed Jul 09, 2003 2:07 pm
Location: Bristol, UK
Contact:

Post by zoneminder »

I have just downloaded the latest svn of ffmpeg (SVN-r11879) and I can compile without problems. Can you confirm that you have definately installed your latest ffmpeg version and if so grep for url_fclose in avio.h in the ffmpeg dir and wherever you installed it (possibly /usr/local/include/ffmpeg?).
Phil
User avatar
wildpossum
Posts: 38
Joined: Wed Jul 04, 2007 5:40 am
Location: Sydney - AUSTRALIA

Post by wildpossum »

Whilst I have only ffmpeg rpm loaded rather than the latest SVN version
I get the same issue.

System:
Linux ringtail.wildpossum.com 2.6.23.14-107.fc8 #1 SMP Mon Jan 14 22:07:11 EST 2008 x86_64 x86_64 x86_64 GNU/Linux

Code: Select all

[gmkelly@ringtail ~]$ rpm -aq|grep ffmpeg
ffmpeg-libs-0.4.9-0.41.20071011.lvn8
ffmpeg-devel-0.4.9-0.41.20071011.lvn8
ffmpeg-0.4.9-0.41.20071011.lvn8
gstreamer-ffmpeg-0.10.3-1.lvn8
ffmpeg2theora-0.19-1.lvn8
[gmkelly@ringtail ~]$ grep url_fclose /usr/include/ffmpeg/avio.h
int url_fclose(ByteIOContext *s);
I hope this assist you to help us.
I'll do a SVN updated and try again.
Grahame
Locked