Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot build on Linux (Debian Testing) #69

Closed
ghost opened this issue Oct 14, 2012 · 7 comments
Closed

Cannot build on Linux (Debian Testing) #69

ghost opened this issue Oct 14, 2012 · 7 comments

Comments

@ghost
Copy link

ghost commented Oct 14, 2012

Hey,

i've just discovered your very nice KeyFinder Software, and i'm eager to try it out. However, i have neither found a precompiled linux binary nor been able to build it on my debian testing system. There is also no build-howto whatsoever. After finding out that "is_KeyFinder.pro" is probably a qmake file(???) i've run "qmake-qt4 is_KeyFinder.pro" which left me with a Makefile and no errors. Upon trying to "make" i get:

g++ -c -pipe -D__STDC_CONSTANT_MACROS -O2 -Wall -W -D_REENTRANT -DQT_WEBKIT -DQT_NO_DEBUG -DQT_XMLPATTERNS_LIB -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtXmlPatterns -I/usr/include/qt4 -I. -Iui -o asyncfileobject.o asyncfileobject.cpp
In file included from asyncfileobject.h:26:0,
from asyncfileobject.cpp:22:
preferences.h:40:34: fatal error: keyfinder/parameters.h: No such file or directory
compilation terminated.

When i'm looking at preferences.h, it really does include this nonexistant file from a nonexistant directoy. When either touching a empty file where its expected, or removing the #include, i get a:

preferences.h:58:3: error: ‘KeyFinder’ does not name a type

On various other lines of preferences.h too. I've also tried to compile with qmake-qt3.

It'd be really nice if you could point me to what i'm doing wrong ;(. Also, including a little word of help on how to compile this would be super-nice ;0.

Thanks for your great work so far!
Regards

  • Dario
@ibsh
Copy link
Owner

ibsh commented Oct 14, 2012

Hey.
Looks like you haven't built libKeyFinder, which is required for KeyFinder to work. It's also available here on GitHub. Other than that I'm afraid I haven't attempted to build this on Linux myself.

@ibsh ibsh closed this as completed Oct 14, 2012
@ghost
Copy link
Author

ghost commented Oct 15, 2012

Hey,

thanks for the notice! I've now actually managed to build KeyFinder, and it does start! I also had to install libavformat-dev, libavcodec-dev and libavutil-dev, which is to be expected.

However, when i try to drag/drop a folder, multiple files or even a single file and press run batch analysis, i get:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xae843b70 (LWP 10820)]
0xb72fa646 in av_packet_get_side_data () from /usr/lib/i386-linux-gnu/i686/cmov/libavcodec.so.54
#0 0xb72fa646 in av_packet_get_side_data () from /usr/lib/i386-linux-gnu/i686/cmov/libavcodec.so.54
#1 0xb774c887 in avcodec_decode_audio4 () from /usr/lib/i386-linux-gnu/i686/cmov/libavcodec.so.54
#2 0xb774cea9 in avcodec_decode_audio3 () from /usr/lib/i386-linux-gnu/i686/cmov/libavcodec.so.54
#3 0x0805b7d4 in LibAvDecoder::decodePacket(AVCodecContext_, ReSampleContext_, AVPacket_, KeyFinder::AudioData_) ()
#4 0x0805bd78 in LibAvDecoder::decodeFile(QString const&, int) ()
#5 0x0805a5aa in keyDetectionProcess(AsyncFileObject const&) ()
#6 0x08075433 in QtConcurrent::MappedEachKernel<QList::const_iterator, QtConcurrent::FunctionWrapper1<KeyFinderResultWrapper, AsyncFileObject const&> >::runIteration(QList::const_iterator, int, KeyFinderResultWrapper*) ()
#7 0x081f7274 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

(backtraced in gdb, dito when i try to open a detailed analysis window).

Can you guess what could be wrong there?

Thanks for your reply ;)

@ibsh
Copy link
Owner

ibsh commented Oct 15, 2012

Maybe a version conflict with libav? If you check the .pro file in KeyFinder it has a list of versions for its dependencies and I'm only building against libav 0.7.6 so far; if your package manager has gone for a newer version then that might lead to a problem like this.

@mangelasakis
Copy link

Is there any progress with this issue? I been trying to compile keyfinder on ubuntu but I always get error.

@ghost
Copy link
Author

ghost commented Oct 24, 2012

A little. I'm super busy with my bachelor thesis, i think i almost have it working, maybe only a little tip from ibsh. i'll try to make time to post details later today or tomorrow. Sorry!

@ghost
Copy link
Author

ghost commented Oct 28, 2012

Hey,

okay, here's what i did so far: I've built libav 0.7.6 and installed it to /opt/keyfinder, then built libkeyfinder and changed the makefile so that i can install it in /opt/keyfinder too (i've removed all occurances of "/usr/local" from Makefile and did "INSTALL_ROOT=/opt/keyfinder make install"). Then i've added -I and -L parameters (pointint to /opt/keyfinder/include/* and /opt/keyfinder/lib) to the makefile in is_keyfinder and applied the WORK_CACHEDIR fix from
#58
and tried to build. In the last linking step i get this:
g++ -Wl,-O1 -o KeyFinder asyncfileobject.o asynckeyprocess.o asyncmetadatareadprocess.o decoder.o decoderlibav.o downsampler.o downsamplerib.o downsamplerlibsrc.o externalplaylist.o externalplaylistserato.o guiabout.o guibatch.o guidetail.o guimenuhandler.o guiprefs.o libkeyfindersingleton.o main.o metadatataglib.o os_windows.o preferences.o strings.o moc_guiabout.o moc_guibatch.o moc_guidetail.o moc_guimenuhandler.o moc_guiprefs.o moc_strings.o qrc_resources.o -L/usr/lib/i386-linux-gnu -lkeyfinder -lavcodec -lavformat -lavutil -lsamplerate -ltag -lxerces-c -lxqilla -lQtXmlPatterns -lQtXml -lQtGui -lQtNetwork -lQtCore -lpthread -L/opt/keyfinder/lib/
/opt/keyfinder/lib//libavformat.a(allformats.o): In function av_register_all': /home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/allformats.c:48: undefined reference toavcodec_register_all'
/opt/keyfinder/lib//libavformat.a(dv.o): In function dv_frame_offset': /home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/dv.c:386: undefined reference toff_dv_codec_profile'
/opt/keyfinder/lib//libavformat.a(dv.o): In function dv_read_header': /home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/dv.c:449: undefined reference toff_dv_frame_profile'
/opt/keyfinder/lib//libavformat.a(dv.o): In function dv_produce_packet': /home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/dv.c:339: undefined reference toff_dv_frame_profile'
/opt/keyfinder/lib//libavformat.a(dvenc.o): In function dv_init_mux': /home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/dvenc.c:326: undefined reference toff_dv_codec_profile'
/opt/keyfinder/lib//libavformat.a(flacdec.o): In function flac_read_header': /home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/flacdec.c:90: undefined reference toff_flac_parse_streaminfo'
/home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/flacdec.c:51: undefined reference to ff_flac_parse_block_header' /opt/keyfinder/lib//libavformat.a(flacenc.o): In functionflac_write_trailer':
/home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/flacenc.c:97: undefined reference to ff_flac_is_extradata_valid' /opt/keyfinder/lib//libavformat.a(flacenc_header.o): In functionff_flac_write_header':
/home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/flacenc_header.c:37: undefined reference to ff_flac_is_extradata_valid' /opt/keyfinder/lib//libavformat.a(flvdec.o): In functionflv_read_packet':
/home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/flvdec.c:501: undefined reference to ff_mpeg4audio_get_config' /opt/keyfinder/lib//libavformat.a(isom.o): In functionff_mp4_read_dec_config_descr':
/home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/isom.c:413: undefined reference to ff_mpeg4audio_get_config' /home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/isom.c:417: undefined reference toff_mpa_freq_tab'
/opt/keyfinder/lib//libavformat.a(matroskadec.o): In function matroska_decode_buffer': /home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/matroskadec.c:992: undefined reference toBZ2_bzDecompressInit'
/home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/matroskadec.c:1006: undefined reference to BZ2_bzDecompress' /home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/matroskadec.c:1009: undefined reference toBZ2_bzDecompressEnd'
/home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/matroskadec.c:1000: undefined reference to BZ2_bzDecompressEnd' /opt/keyfinder/lib//libavformat.a(matroskadec.o): In functionmatroska_aac_sri':
/home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/matroskadec.c:1211: undefined reference to ff_mpeg4audio_sample_rates' /home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/matroskadec.c:1211: undefined reference toff_mpeg4audio_sample_rates'
/home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/matroskadec.c:1211: undefined reference to ff_mpeg4audio_sample_rates' /home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/matroskadec.c:1211: undefined reference toff_mpeg4audio_sample_rates'
/home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/matroskadec.c:1211: undefined reference to ff_mpeg4audio_sample_rates' /opt/keyfinder/lib//libavformat.a(matroskadec.o):/home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/matroskadec.c:1211: more undefined references toff_mpeg4audio_sample_rates' follow
/opt/keyfinder/lib//libavformat.a(matroskaenc.o): In function get_aac_sample_rates': /home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/matroskaenc.c:442: undefined reference toff_mpeg4audio_get_config'
/opt/keyfinder/lib//libavformat.a(mp3dec.o): In function mp3_read_probe': /home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/mp3dec.c:53: undefined reference toff_mpa_decode_header'
/opt/keyfinder/lib//libavformat.a(mp3dec.o): In function mp3_parse_vbr_tags': /home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/mp3dec.c:88: undefined reference toff_mpegaudio_decode_header'
/opt/keyfinder/lib//libavformat.a(nutenc.o): In function find_expected_header': /home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/nutenc.c:61: undefined reference toff_mpa_freq_tab'
/home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/nutenc.c:64: undefined reference to ff_mpa_bitrate_tab' /opt/keyfinder/lib//libavformat.a(oggenc.o): In functionogg_build_flac_headers':
/home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/oggenc.c:256: undefined reference to ff_flac_is_extradata_valid' /opt/keyfinder/lib//libavformat.a(oggparsedirac.o): In functiondirac_header':
/home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/oggparsedirac.c:39: undefined reference to ff_dirac_parse_sequence_header' /opt/keyfinder/lib//libavformat.a(oggparseflac.o): In functionflac_header':
/home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/oggparseflac.c:58: undefined reference to ff_flac_parse_streaminfo' /opt/keyfinder/lib//libavformat.a(sdp.o): In functionlatm_context2config':
/home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/sdp.c:345: undefined reference to ff_mpeg4audio_sample_rates' /home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/sdp.c:345: undefined reference toff_mpeg4audio_sample_rates'
/home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/sdp.c:345: undefined reference to ff_mpeg4audio_sample_rates' /home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/sdp.c:345: undefined reference toff_mpeg4audio_sample_rates'
/home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/sdp.c:345: undefined reference to ff_mpeg4audio_sample_rates' /opt/keyfinder/lib//libavformat.a(sdp.o):/home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/sdp.c:345: more undefined references toff_mpeg4audio_sample_rates' follow
/opt/keyfinder/lib//libavformat.a(sdp.o): In function extradata2psets': /home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/sdp.c:168: undefined reference toav_bitstream_filter_init'
/home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/sdp.c:175: undefined reference to av_bitstream_filter_filter' /home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/sdp.c:176: undefined reference toav_bitstream_filter_close'
/opt/keyfinder/lib//libavformat.a(spdifdec.o): In function spdif_get_offset_and_codec': /home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/spdifdec.c:60: undefined reference toff_aac_parse_header'
/opt/keyfinder/lib//libavformat.a(spdifenc.o): In function spdif_header_aac': /home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/spdifenc.c:352: undefined reference toff_aac_parse_header'
/opt/keyfinder/lib//libavformat.a(adtsenc.o): In function ff_adts_decode_extradata': /home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/adtsenc.c:38: undefined reference toff_mpeg4audio_get_config'
/home/daddel9/sources/is_KeyFinder/libav-0.7.6/libavformat/adtsenc.c:70: undefined reference to `ff_copy_pce_data'
collect2: error: ld returned 1 exit status
make: *** [KeyFinder] Error 1

Does this maybe look like gcc is trying to link against my system libav (in /usr/lib) ratehr than the -L i've specified?

@mangelasakis
Copy link

This is the same error which I have on ubuntu but I don't know how I will fix it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants