On 01/23/2014 10:01 AM, David C. Rankin wrote: > On 01/22/2014 06:33 AM, David C. Rankin wrote: >> All, >> >> k3b looks like it needs a lot of work. I vaguely recall fixing numerous >> out-of-scope issues when gcc 4.7 emerged, but have forgotten the details. >> Building k3d, the following are a number of errors resulting in the FTBFS. I >> have summarized the errors themselves below. From the summary it looks like the >> error: invalid use of incomplete type 'mpc_decoder {aka struct mpc_decoder_t}' >> at k3bmpcwrapper.cpp:77:28 starts the domino falling. If that could be fixed, >> then it may resolve a number of the remaining errors. So c++ gurus, "What is the >> proper way to do that?" >> >> >> Summary of the errors: >> >> k3bmpcwrapper.cpp:77:28: error: invalid use of incomplete type 'mpc_decoder >> /usr/include/mpc/mpcdec.h:55:16: error: forward declaration of 'mpc_decoder >> k3bmpcwrapper.cpp:88:10: note: neither the destructor nor the class-specific >> operator delete will be called, even if they are declared when the class is defined >> k3bmpcwrapper.cpp:101:33: error: 'mpc_streaminfo_init' was not declared in this >> scope >> k3bmpcwrapper.cpp:102:47: error: 'mpc_streaminfo_read' was not declared in this >> scope >> k3bmpcwrapper.cpp:102:52: error: 'ERROR_CODE_OK' was not declared in this scope >> k3bmpcwrapper.cpp:107:46: error: 'mpc_decoder_setup' was not declared in this scope >> k3bmpcwrapper.cpp:108:54: error: 'mpc_decoder_initialize' was not declared in >> this scope >> k3bmpcwrapper.cpp:136:77: error: 'mpc_decoder_decode' was not declared in this scope >> k3bmpcwrapper.cpp:173:78: error: 'mpc_decoder_seek_seconds' was not declared in >> this scope >> > > The code complained of is in: > > k3b/src/plugins/decoder/musepack/k3bmpcwrapper.cpp: > > K3bMpcWrapper::K3bMpcWrapper() > { > m_input = new TQFile(); > > m_reader = new mpc_reader; > m_reader->read = read_impl; > m_reader->seek = seek_impl; > m_reader->tell = tell_impl; > m_reader->get_size = get_size_impl; > m_reader->canseek = canseek_impl; > m_reader->data = m_input; > > m_decoder = new mpc_decoder; > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > m_info = new mpc_streaminfo; > } > > The earlier warning complain of invalid conversions for each of the members in > the constructor, but the error complains about the new mpc_decoder instance. I > don't see what it is complaining about, it will take one of the smarter c++ guys > looking at the code. > > Filed as blocker since k3b must build in order for k9copy to build on nohal > systems: > > http://bugs.pearsoncomputing.net/show_bug.cgi?id=1858 > In all its glory. the problem was a bad header file in musepack-tools-svn (mpcdec.h) that ws an older version of the file. Replacing the headers with the proper files from libmpcdec allowed k3b to build! -- David C. Rankin, J.D.,P.E.