Opened 13 years ago
Closed 13 years ago
#10103 closed Bug Report - General (Invalid)
Trunk Compile Fails on Ubuntu 11.10 due to Include Path Order
Reported by: | Owned by: | ||
---|---|---|---|
Priority: | minor | Milestone: | unknown |
Component: | MythTV - General | Version: | Master Head |
Severity: | medium | Keywords: | |
Cc: | Ticket locked: | no |
Description
I just tried to compile the trunk on Ubuntu 11.10. The compile fails in a call to MythAVTestCommandLineParser picking up mythcommandlineparser.h from libmyth/mythcommandlineparser.h instead of libmythbase/mythcommandlineparser.h which is later in the Include Path.
I presume this is because of a compiler update on 11.10 (4.6.1 instead of 4.5.2 on Ubuntu 11.04). It appears that either the include order need to be changed or some extra compiler flag is needed.
Here is the g++ output g++ -c -pipe -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fomit-frame-pointer -pthread -g -Wall -Wno-switch -Wpointer-arith -Wredundant-decls -Wno-non-virtual-dtor -funit-at-a-time -DSTDC_CONSTANT_MACROS -DSTDC_LIMIT_MACROS -O3 -fvisibility-inlines-hidden -Wmissing-declarations -D_REENTRANT -DQT_WEBKIT -DMMX -Di386 -D_GNU_SOURCE -DUSING_X11 -DUSING_XV -DUSING_IVTV -DUSING_XRANDR -DUSING_OPENGL_VIDEO -DUSING_PULSE -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_XML_LIB -DQT_OPENGL_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/QtOpenGL -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtSql -I/usr/include/qt4 -I/usr/include -I/usr/local -I/usr/include/libxml2 -I../.. -I../../libs -I../../libs/libmyth -I../../libs/libmyth/audio -I../../libs/libmythtv -I../../external/FFmpeg -I../../libs/libmythupnp -I../../libs/libmythui -I../../libs/libmythmetadata -I../../libs/libmythlivemedia -I../../libs/libmythbase -I../../libs/libmythhdhomerun -I../../libs/libmythdvdnav -I../../libs/libmythbluray -I../../libs/libmythsamplerate -I../../libs/libmythtv/mpeg -I../../libs/libmythtv/vbitext -I../../libs/libmythservicecontracts -I../../libs/libmythprotoserver -I/usr/X11R6/include -I. -o main.o main.cpp main.cpp: In function ‘int main(int, char)’: main.cpp:31:34: error: no matching function for call to ‘MythAVTestCommandLineParser::Parse(int&, char&)’ main.cpp:31:34: note: candidate is: ../../libs/libmyth/mythcommandlineparser.h:56:10: note: bool MythCommandLineParser::Parse(int, const char* const*, int&, bool&) ../../libs/libmyth/mythcommandlineparser.h:56:10: note: candidate expects 4 arguments, 2 provided main.cpp:33:17: error: ‘class MythAVTestCommandLineParser’ has no member named ‘PrintHelp?’ main.cpp:37:17: error: ‘class MythAVTestCommandLineParser’ has no member named ‘toBool’ main.cpp:39:17: error: ‘class MythAVTestCommandLineParser’ has no member named ‘PrintHelp?’ main.cpp:43:17: error: ‘class MythAVTestCommandLineParser’ has no member named ‘toBool’ main.cpp:45:17: error: ‘class MythAVTestCommandLineParser’ has no member named ‘PrintVersion?’ main.cpp:53:27: error: ‘class MythAVTestCommandLineParser’ has no member named ‘ConfigureLogging?’ main.cpp:56:18: error: ‘class MythAVTestCommandLineParser’ has no member named ‘toString’ main.cpp:58:45: error: ‘class MythAVTestCommandLineParser’ has no member named ‘toString’ main.cpp:61:18: error: ‘class MythAVTestCommandLineParser’ has no member named ‘toString’ main.cpp:63:53: error: ‘class MythAVTestCommandLineParser’ has no member named ‘toString’ main.cpp:67:17: error: ‘class MythAVTestCommandLineParser’ has no member named ‘GetArgs?’ main.cpp:68:28: error: ‘class MythAVTestCommandLineParser’ has no member named ‘GetArgs?’ main.cpp:77:13: error: ‘class MythAVTestCommandLineParser’ has no member named ‘ApplySettingsOverride?’ make[2]: * [main.o] Error 1 make[2]: Leaving directory `/home/km/mythgit/mythtv/mythtv/programs/mythavtest'
As a workaround adding "--extra-cxxflags=-I../../libs/libmythbase" works around the problem.