Failing compile with 2geom/path.h
Hi,
I have recently been unable to compile Inkscape on Linux because of a compile failure in nodepath.cpp.
It exhibits the same failure, even when I checkout an older version that used to compile for me! Here is the beginning of the message I get (it goes on much longer), could someone please help?
Thanks, -Mason
In file included from live_effects/effect.h:16, from live_effects/lpeobject.h:13, from nodepath.cpp:50: ./2geom/path.h:72: warning: `virtual Geom::Curve* Geom::Curve::reverse() const' was hidden ./2geom/path.h:313: warning: by `Geom::Curve* Geom::SVGEllipticalArc::reverse(double, double) const' ./2geom/path.h: In member function `Geom::BaseIterator<__gnu_cxx::__normal_iterator<Geom::Curve**, std::vector<Geom::Curve*, std::allocatorGeom::Curve* > > > Geom::Path::begin()': ./2geom/path.h:376: error: `Geom::BaseIterator<IteratorImpl>::BaseIterator(const IteratorImpl&) [with IteratorImpl = __gnu_cxx::__normal_iterator<Geom::Curve**, std::vector<Geom::Curve*, std::allocatorGeom::Curve* > >]' is private ./2geom/path.h:472: error: within this context ./2geom/path.h: In member function `Geom::BaseIterator<__gnu_cxx::__normal_iterator<Geom::Curve**, std::vector<Geom::Curve*, std::allocatorGeom::Curve* > > > Geom::Path::end()': ./2geom/path.h:376: error: `Geom::BaseIterator<IteratorImpl>::BaseIterator(const IteratorImpl&) [with IteratorImpl = __gnu_cxx::__normal_iterator<Geom::Curve**, std::vector<Geom::Curve*, std::allocatorGeom::Curve* > >]' is private ./2geom/path.h:473: error: within this context
the tutorial for the paint bucket / flood fill tool is now almost complete. Before we convert this into DocBook XML format, would it be possible for devs and users to have a quick read, and give the tutorial writers some tips on improvements etc. ?
the tutorial draft can be viewed here:
http://wiki.inkscape.org/wiki/index.php/Scratchpad_paintbuckettutorial
thanks in advance,
ryanlerch
Thanks to whomever fixed the 2geom errors--I can now get past that in revision 16487.
However...now I get an error compiling pdf-input.cpp (from extension/internal/pdfinput/pdf-input.cpp):
In file included from extension/internal/pdfinput/pdf-input.cpp:26: extension/internal/pdfinput/pdf-input.h:40:28: CairoOutputDev.h: No such file or directory In file included from extension/internal/pdfinput/pdf-input.cpp:26: extension/internal/pdfinput/pdf-input.h:107: error: ISO C++ forbids declaration of `CairoOutputDev' with no type extension/internal/pdfinput/pdf-input.h:107: error: expected `;' before '*' token extension/internal/pdfinput/pdf-input.cpp: In constructor `Inkscape::Extension::Internal::PdfImportDialog::PdfImportDialog(PDFDoc*)': extension/internal/pdfinput/pdf-input.cpp:279: error: `_preview_output_dev' was not declared in this scope extension/internal/pdfinput/pdf-input.cpp:279: error: `CairoOutputDev' has not been declared extension/internal/pdfinput/pdf-input.cpp: In destructor `virtual Inkscape::Extension::Internal::PdfImportDialog::~PdfImportDialog()': extension/internal/pdfinput/pdf-input.cpp:301: error: `_preview_output_dev' was not declared in this scope extension/internal/pdfinput/pdf-input.cpp:302: error: type `<type error>' argument given to `delete', expected pointer extension/internal/pdfinput/pdf-input.cpp: In member function `void Inkscape::Extension::Internal::PdfImportDialog::_setPreviewPage(int)': extension/internal/pdfinput/pdf-input.cpp:544: error: `_preview_output_dev' was not declared in this scope
Thanks again for any help,
-Mason
I'm also interested in changes in this area since a very similar problem keeps OS X 10.3.9 (gcc3) from building. I was able to get around the failure by changing private members to public in 2geom/path.h, but that's probably not the right fix.
Can anyone comment on the specific change which made this error go away?
Thanks!, John
On Nov 12, 2007 11:38 PM, Mason Thomas <mlt_svn@...856...> wrote:
Thanks to whomever fixed the 2geom errors--I can now get past that in revision 16487.
However...now I get an error compiling pdf-input.cpp (from extension/internal/pdfinput/pdf-input.cpp):
In file included from extension/internal/pdfinput/pdf-input.cpp:26: extension/internal/pdfinput/pdf-input.h:40:28: CairoOutputDev.h: No such file or directory In file included from extension/internal/pdfinput/pdf-input.cpp:26: extension/internal/pdfinput/pdf-input.h:107: error: ISO C++ forbids declaration of `CairoOutputDev' with no type extension/internal/pdfinput/pdf-input.h:107: error: expected `;' before '*' token extension/internal/pdfinput/pdf-input.cpp: In constructor `Inkscape::Extension::Internal::PdfImportDialog::PdfImportDialog(PDFDoc*)': extension/internal/pdfinput/pdf-input.cpp:279: error: `_preview_output_dev' was not declared in this scope extension/internal/pdfinput/pdf-input.cpp:279: error: `CairoOutputDev' has not been declared extension/internal/pdfinput/pdf-input.cpp: In destructor `virtual Inkscape::Extension::Internal::PdfImportDialog::~PdfImportDialog()': extension/internal/pdfinput/pdf-input.cpp:301: error: `_preview_output_dev' was not declared in this scope extension/internal/pdfinput/pdf-input.cpp:302: error: type `<type error>' argument given to `delete', expected pointer extension/internal/pdfinput/pdf-input.cpp: In member function `void Inkscape::Extension::Internal::PdfImportDialog::_setPreviewPage(int)': extension/internal/pdfinput/pdf-input.cpp:544: error: `_preview_output_dev' was not declared in this scope
Thanks again for any help,
-Mason
Mason,
It's a problem with the use of a private header file in poppler instead of the public API for GTK. Unfortunately, with recent builds it breaks on systems that don't have the private header installed, but the header is not meant for install by the poppler devs.
One way to temporarily get around it is to copy the header file (which you can find in the poppler tarball) to the correct location (depends on your system). However, I think the long term solution is rather complicated, since (I've been told) use of the poppler API does not allow for functionality that is advanced enough for the Inkscape usage.
You can follow the recent thread here:
http://sourceforge.net/mailarchive/forum.php?thread_name=pan.2007.10.16.15.2...
JF
Mason Thomas wrote:
Thanks to whomever fixed the 2geom errors--I can now get past that in revision 16487.
However...now I get an error compiling pdf-input.cpp (from extension/internal/pdfinput/pdf-input.cpp):
In file included from extension/internal/pdfinput/pdf-input.cpp:26: extension/internal/pdfinput/pdf-input.h:40:28: CairoOutputDev.h: No such file or directory In file included from extension/internal/pdfinput/pdf-input.cpp:26: extension/internal/pdfinput/pdf-input.h:107: error: ISO C++ forbids declaration of `CairoOutputDev' with no type extension/internal/pdfinput/pdf-input.h:107: error: expected `;' before '*' token extension/internal/pdfinput/pdf-input.cpp: In constructor `Inkscape::Extension::Internal::PdfImportDialog::PdfImportDialog(PDFDoc*)': extension/internal/pdfinput/pdf-input.cpp:279: error: `_preview_output_dev' was not declared in this scope extension/internal/pdfinput/pdf-input.cpp:279: error: `CairoOutputDev' has not been declared extension/internal/pdfinput/pdf-input.cpp: In destructor `virtual Inkscape::Extension::Internal::PdfImportDialog::~PdfImportDialog()': extension/internal/pdfinput/pdf-input.cpp:301: error: `_preview_output_dev' was not declared in this scope extension/internal/pdfinput/pdf-input.cpp:302: error: type `<type error>' argument given to `delete', expected pointer extension/internal/pdfinput/pdf-input.cpp: In member function `void Inkscape::Extension::Internal::PdfImportDialog::_setPreviewPage(int)': extension/internal/pdfinput/pdf-input.cpp:544: error: `_preview_output_dev' was not declared in this scope
Thanks again for any help,
-Mason
This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel
Joshua,
thanks! I used the --enable-poppler-cairo=no configure option and Inkscape compiled just fine.
-Mason
On Tue, Nov 13, 2007 at 04:45:59PM -0600, Joshua Facemyer / Impressus Art wrote:
Mason,
It's a problem with the use of a private header file in poppler instead of the public API for GTK. Unfortunately, with recent builds it breaks on systems that don't have the private header installed, but the header is not meant for install by the poppler devs.
One way to temporarily get around it is to copy the header file (which you can find in the poppler tarball) to the correct location (depends on your system). However, I think the long term solution is rather complicated, since (I've been told) use of the poppler API does not allow for functionality that is advanced enough for the Inkscape usage.
You can follow the recent thread here:
http://sourceforge.net/mailarchive/forum.php?thread_name=pan.2007.10.16.15.2...
JF
Mason Thomas wrote:
Thanks to whomever fixed the 2geom errors--I can now get past that in revision 16487.
However...now I get an error compiling pdf-input.cpp (from extension/internal/pdfinput/pdf-input.cpp):
In file included from extension/internal/pdfinput/pdf-input.cpp:26: extension/internal/pdfinput/pdf-input.h:40:28: CairoOutputDev.h: No such file or directory In file included from extension/internal/pdfinput/pdf-input.cpp:26: extension/internal/pdfinput/pdf-input.h:107: error: ISO C++ forbids declaration of `CairoOutputDev' with no type extension/internal/pdfinput/pdf-input.h:107: error: expected `;' before '*' token extension/internal/pdfinput/pdf-input.cpp: In constructor `Inkscape::Extension::Internal::PdfImportDialog::PdfImportDialog(PDFDoc*)': extension/internal/pdfinput/pdf-input.cpp:279: error: `_preview_output_dev' was not declared in this scope extension/internal/pdfinput/pdf-input.cpp:279: error: `CairoOutputDev' has not been declared extension/internal/pdfinput/pdf-input.cpp: In destructor `virtual Inkscape::Extension::Internal::PdfImportDialog::~PdfImportDialog()': extension/internal/pdfinput/pdf-input.cpp:301: error: `_preview_output_dev' was not declared in this scope extension/internal/pdfinput/pdf-input.cpp:302: error: type `<type error>' argument given to `delete', expected pointer extension/internal/pdfinput/pdf-input.cpp: In member function `void Inkscape::Extension::Internal::PdfImportDialog::_setPreviewPage(int)': extension/internal/pdfinput/pdf-input.cpp:544: error: `_preview_output_dev' was not declared in this scope
Thanks again for any help,
-Mason
This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel
This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel
participants (4)
-
John Faith
-
Joshua Facemyer / Impressus Art
-
Mason Thomas
-
Ryan Lerch