Compiling 0.9.0 tarball on x86_64 linux fails
DJV provides professional review software for VFX, animation, and film
Brought to you by:
darbyjohnston
Hi,
Grabbed the tarball djv-0.9.0_src.tar.gz from the downloads page.
I'm running Arch Linux, 64bit.
mkdir build && cd build
cmake .. # all fine
make
And I get the following errors (see below)
I'm not sure if its a missing header, or what it is.. so I figured I'd file a bug here!
Cheers -Harry
Building CXX object lib/djv_core/CMakeFiles/djv_core.dir/djv_core_application.cpp.o In file included from /root/programming/djv-0.9.0/lib/djv_core/djv_core_application.cpp:36:0: /root/programming/djv-0.9.0/lib/djv_core/djv_file.h:152:15: error: 'uid_t' has not been declared void user(uid_t); ^ /root/programming/djv-0.9.0/lib/djv_core/djv_file.h:172:12: error: 'uid_t' does not name a type inline uid_t user() const; ^ /root/programming/djv-0.9.0/lib/djv_core/djv_file.h:230:5: error: 'uid_t' does not name a type uid_t _user; ^ In file included from /root/programming/djv-0.9.0/lib/djv_core/djv_file.h:391:0, from /root/programming/djv-0.9.0/lib/djv_core/djv_core_application.cpp:36: /root/programming/djv-0.9.0/lib/djv_core/djv_file_inline.h:73:8: error: 'uid_t' does not name a type inline uid_t File::user () const ^ /root/programming/djv-0.9.0/lib/djv_core/djv_file_inline.h: In member function 'bool djv::File::seq_add(const djv::File&)': /root/programming/djv-0.9.0/lib/djv_core/djv_file_inline.h:140:5: error: '_user' was not declared in this scope _user = Math::max(_user, in._user); ^ /root/programming/djv-0.9.0/lib/djv_core/djv_file_inline.h:140:33: error: 'const class djv::File' has no member named '_user' _user = Math::max(_user, in._user); ^ lib/djv_core/CMakeFiles/djv_core.dir/build.make:123: recipe for target 'lib/djv_core/CMakeFiles/djv_core.dir/djv_core_application.cpp.o' failed make[2]: *** [lib/djv_core/CMakeFiles/djv_core.dir/djv_core_application.cpp.o] Error 1 CMakeFiles/Makefile2:410: recipe for target 'lib/djv_core/CMakeFiles/djv_core.dir/all' failed make[1]: *** [lib/djv_core/CMakeFiles/djv_core.dir/all] Error 2 Makefile:137: recipe for target 'all' failed
Hi Harry,
I've just released a new version of the software, would you mind trying to build with the new version and verify that this issue still exists? Also I've just added Git support so if your are familiar with that you can get the source code like this:
Or you can also find the source code as a tarball on the downloads page:
Thanks, Darby
Hey,
Yes it builds much further: that error was fixed. I'm now getting the
following error, libjpeg:: / Imf:: issue.
Ping me, and I'll git pull && make. Thanks for fixing the previous issue!
Scanning dependencies of target djvOpenExrPlugin
[ 61%] Building CXX object
plugins/djvOpenExrPlugin/CMakeFiles/djvOpenExrPlugin.dir/djvOpenExrLoad.cpp.o
/root/programming/djv-git/plugins/djvJpegPlugin/djvJpegLoad.cpp: In
function 'bool {anonymous}::jpegOpen(FILE,
libjpeg::jpeg_decompress_struct, djvJpegErrorStruct)':
/root/programming/djv-git/plugins/djvJpegPlugin/djvJpegLoad.cpp:224:9:
error: 'TRUE' is not a member of 'libjpeg'
libjpeg::TRUE;
^
plugins/djvJpegPlugin/CMakeFiles/djvJpegPlugin.dir/build.make:54:
recipe for target
'plugins/djvJpegPlugin/CMakeFiles/djvJpegPlugin.dir/djvJpegLoad.cpp.o'
failed
make[2]: [plugins/djvJpegPlugin/CMakeFiles/djvJpegPlugin.dir/djvJpegLoad.cpp.o]
Error 1
CMakeFiles/Makefile2:1663: recipe for target
'plugins/djvJpegPlugin/CMakeFiles/djvJpegPlugin.dir/all' failed
make[1]: [plugins/djvJpegPlugin/CMakeFiles/djvJpegPlugin.dir/all] Error 2
make[1]: Waiting for unfinished jobs....
[ 61%] Building CXX object
plugins/djvOpenExrPlugin/CMakeFiles/djvOpenExrPlugin.dir/djvOpenExrPlugin.cpp.o
[ 62%] Building CXX object
plugins/djvOpenExrPlugin/CMakeFiles/djvOpenExrPlugin.dir/djvOpenExrSave.cpp.o
/root/programming/djv-git/plugins/djvOpenExrPlugin/djvOpenExrSave.cpp:
In member function 'void djvOpenExrSave::_open(const QString&, const
djvImageIoInfo&)':
/root/programming/djv-git/plugins/djvOpenExrPlugin/djvOpenExrSave.cpp:246:31:
error: 'DWAA_COMPRESSION' is not a member of 'Imf'
compression = Imf::DWAA_COMPRESSION;
^
/root/programming/djv-git/plugins/djvOpenExrPlugin/djvOpenExrSave.cpp:250:31:
error: 'DWAB_COMPRESSION' is not a member of 'Imf'
compression = Imf::DWAB_COMPRESSION;
^
/root/programming/djv-git/plugins/djvOpenExrPlugin/djvOpenExrSave.cpp:258:68:
error: 'addDwaCompressionLevel' was not declared in this scope
addDwaCompressionLevel(header, _options.dwaCompressionLevel);
^
plugins/djvOpenExrPlugin/CMakeFiles/djvOpenExrPlugin.dir/build.make:100:
recipe for target
'plugins/djvOpenExrPlugin/CMakeFiles/djvOpenExrPlugin.dir/djvOpenExrSave.cpp.o'
failed
make[2]: [plugins/djvOpenExrPlugin/CMakeFiles/djvOpenExrPlugin.dir/djvOpenExrSave.cpp.o]
Error 1
make[2]: Waiting for unfinished jobs....
CMakeFiles/Makefile2:1831: recipe for target
'plugins/djvOpenExrPlugin/CMakeFiles/djvOpenExrPlugin.dir/all' failed
make[1]: [plugins/djvOpenExrPlugin/CMakeFiles/djvOpenExrPlugin.dir/all]
Error 2
Makefile:147: recipe for target 'all' failed
make: ** [all] Error 2
On Sun, Oct 5, 2014 at 8:49 PM, darbyjohnston
darbyjohnston@users.sf.net wrote:
--
http://www.openavproductions.com
Related
Bugs:
#12Hi,
It looks like maybe you are using earlier versions of libjpeg and OpenEXR; the versions I have been compiling against are:
If those packages are not available on your system you can download them (and the other third party packages DJV relies on) from here:
There are instructions for how to compile the third party packages in the main CMakeLists.txt file in the DJV source.
Darby
Hi Harry,
Any luck with compiling with the newer versions of the packages? If so I would like to close this bug out.
Thanks, Darby
Hi,
I have a build error similar to the last reported by Harry:
[ 58%] Building CXX object plugins/djvTargaPlugin/CMakeFiles/djvTargaPlugin.dir/djvTargaPlugin.cpp.o
[ 58%] Building CXX object plugins/djvPpmPlugin/CMakeFiles/djvPpmPlugin.dir/djvPpmWidget.cpp.o
/home/tim/Softs/src/djv-1.0.5/plugins/djvJpegPlugin/djvJpegLoad.cpp: In function ‘bool {anonymous}::jpegOpen(FILE, libjpeg::jpeg_decompress_struct, djvJpegErrorStruct*)’:
/home/tim/Softs/src/djv-1.0.5/plugins/djvJpegPlugin/djvJpegLoad.cpp:224:9: erreur: ‘TRUE’ is not a member of ‘libjpeg’
libjpeg::TRUE;
^
plugins/djvJpegPlugin/CMakeFiles/djvJpegPlugin.dir/build.make:54: recipe for target 'plugins/djvJpegPlugin/CMakeFiles/djvJpegPlugin.dir/djvJpegLoad.cpp.o' failed
make[2]: [plugins/djvJpegPlugin/CMakeFiles/djvJpegPlugin.dir/djvJpegLoad.cpp.o] Error 1
CMakeFiles/Makefile2:1663: recipe for target 'plugins/djvJpegPlugin/CMakeFiles/djvJpegPlugin.dir/all' failed
make[1]: [plugins/djvJpegPlugin/CMakeFiles/djvJpegPlugin.dir/all] Error 2
make[1]: Attente des tâches non terminées....
[ 59%] Building CXX object plugins/djvPpmPlugin/CMakeFiles/djvPpmPlugin.dir/djvPpmPlugin_automoc.cpp.o
[ 60%] Building CXX object plugins/djvSgiPlugin/CMakeFiles/djvSgiPlugin.dir/djvSgiSave.cpp.o
[ 60%] Building CXX object plugins/djvTargaPlugin/CMakeFiles/djvTargaPlugin.dir/djvTargaSave.cpp.o
[ 61%] Building CXX object plugins/djvTargaPlugin/CMakeFiles/djvTargaPlugin.dir/djvTargaWidget.cpp.o
Linking CXX shared module ../../build/lib/libdjvPpmPlugin.so
[ 61%] Built target djvPpmPlugin
[ 61%] Building CXX object plugins/djvTargaPlugin/CMakeFiles/djvTargaPlugin.dir/djvTargaPlugin_automoc.cpp.o
[ 61%] Building CXX object plugins/djvSgiPlugin/CMakeFiles/djvSgiPlugin.dir/djvSgiWidget.cpp.o
[ 61%] Building CXX object plugins/djvSgiPlugin/CMakeFiles/djvSgiPlugin.dir/djvSgiPlugin_automoc.cpp.o
Linking CXX shared module ../../build/lib/libdjvTargaPlugin.so
[ 61%] Built target djvTargaPlugin
Linking CXX shared module ../../build/lib/libdjvSgiPlugin.so
[ 61%] Built target djvSgiPlugin
Makefile:147: recipe for target 'all' failed
make: [all] Error 2
Looks like it doesn't like our libjpeg..
Looking at it, my libjpeg (in Mageia 5 beta) is 1.3.0 from here:
https://sourceforge.net/projects/libjpeg-turbo/
And on Arch, they have 1.4.0 from the same source.
Looks like you are using a different libjpeg from here:
http://www.ijg.org/files/
Any reason why you don't use libjpeg-turbo? Any idea how to fix this error to use it instead?
Edit: It's libjpeg 1.3.1 that I have, not 1.3.0...
Note: as a workaround, I just commented the if sections with libjpeg::TRUE; in both djvJpegLoad.cpp and djvJpegSave.cpp, and build finished without error. make test failed, but make package worked and made a working rpm.
I tried loading a jpeg file, and saving a png to jpeg, it works fine.
Hi Timothee,
Could you check that you are using the latest sources from Git? The problem with the libjpeg::TRUE should be fixed.
The confidence tests need X11/OpenGL for running, is it possible you are running them on a remote machine without X forwarding?
I'll check out libjpeg-turbo, it looks interesting and I would definitely be interested in speeding up image I/O times.
Thanks, Darby
Hi Darby,
I was using 1.0.5.
I just tried git master and the error with libjpeg is gone :)
Though I still have test crashing, not using ssh, but I'll start another report about it.
Thanks!