Linux failure to compile wxString-related

Discussion of compilation configuration and issues

Linux failure to compile wxString-related

Postby healy » Wed Nov 03, 2010 4:00 pm

I am trying to compile the development branch on Linux (Debian testing, amd64). The make ends in failure; most of the error messages involve wxString in some way, so here is a list of the wx packages I have installed:

ii libwxbase2.8-0 2.8.10.1-3+b1 wxBase library (runtime) - non-GUI support classes of wxWidgets toolkit
ii libwxbase2.8-dev 2.8.10.1-3+b1 wxBase library (development) - non-GUI support classes of wxWidgets toolkit
ii libwxgtk2.8-0 2.8.10.1-3+b1 wxWidgets Cross-platform C++ GUI toolkit (GTK+ runtime)
ii libwxgtk2.8-dev 2.8.10.1-3+b1 wxWidgets Cross-platform C++ GUI toolkit (GTK+ development)
ii wx2.8-headers 2.8.10.1-3+b1 wxWidgets Cross-platform C++ GUI toolkit (header files)

I have seen this
http://gmat.ed-pages.com/forum/viewtopic.php?f=2&t=399&p=1216&sid=d3ff5f1d46f84435998b249412c55379&sid=d3ff5f1d46f84435998b249412c55379#p1216
and I think it might be related; is the issue here that there is unicode support in the Debian compiled libraries? I would prefer not have to recompile them without unicode if there is an easier way around this.

Thanks,

Liam

Tail end of output, where errors start:

make[2]: Entering directory `/home/healy/satellite/gmat/src/gui'
mkdir -p ../../bin
rm -f app/AboutDialog.o
g++ -O3 -fno-strict-aliasing -ffriend-injection -D__USE_WX280__ -D__USE_WX280_GL__ -DwxUSE_GLCANVAS -Wall `wx-config --cppflags` -DUSE_64_BIT_LONGS -I/usr/local/include/IL -fPIC -I../base/include -I../base/asset -I../base/attitude -I../base/burn -I../base/command -I../base/configs -I../base/coordsystem -I../base/executive -I../base/factory -I../base/forcemodel -I../base/foundation -I../base/function -I../base/hardware -I../base/interface -I../base/interpolator -I../base/interpreter -I../base/math -I../base/parameter -I../base/plugin -I../base/propagator -I../base/solarsys -I../base/solver -I../base/spacecraft -I../base/stopcond -I../base/subscriber -I../base/util -Iinclude -Iinclude/bitmaps -Iinclude/il -Iapp -Iasset -Iburn -Icommand -Icontrollogic -Icoordsystem -Iforcemodel -Ifoundation -Ifunction -Ihardware -Imission -Ioutput -Ipropagator -Irendering -Isolarsys -Isolver -Ispacecraft -Isubscriber -Iview -c -o app/AboutDialog.o app/AboutDialog.cpp
In file included from app/GmatAppData.hpp:23,
from app/AboutDialog.hpp:26,
from app/AboutDialog.cpp:19:
view/ViewTextFrame.hpp:30: error: default argument for parameter of type ‘const wxString&’ has type ‘const char [10]’
view/ViewTextFrame.hpp:30: error: default argument for parameter of type ‘const wxString&’ has type ‘const char [7]’
In file included from app/ResourceTree.hpp:23,
from app/GmatAppData.hpp:24,
from app/AboutDialog.hpp:26,
from app/AboutDialog.cpp:19:
foundation/GuiItemManager.hpp:246: error: default argument for parameter of type ‘const wxString&’ has type ‘const char [1]’
foundation/GuiItemManager.hpp:253: error: default argument for parameter of type ‘const wxString&’ has type ‘const char [1]’
foundation/GuiItemManager.hpp:258: error: default argument for parameter of type ‘const wxString&’ has type ‘const char [1]’
foundation/GuiItemManager.hpp:263: error: default argument for parameter of type ‘const wxString&’ has type ‘const char [1]’
foundation/GuiItemManager.hpp:295: error: default argument for parameter of type ‘const wxString&’ has type ‘const char [11]’
foundation/GuiItemManager.hpp:321: error: default argument for parameter of type ‘const wxString&’ has type ‘const char [11]’
foundation/GuiItemManager.hpp:322: error: default argument for parameter of type ‘wxString’ has type ‘const char [17]’
In file included from app/ResourceTree.hpp:24,
from app/GmatAppData.hpp:24,
from app/AboutDialog.hpp:26,
from app/AboutDialog.cpp:19:
app/GmatTreeItemData.hpp:287: error: default argument for parameter of type ‘const wxString&’ has type ‘const char [1]’
In file included from app/GmatAppData.hpp:24,
from app/AboutDialog.hpp:26,
from app/AboutDialog.cpp:19:
app/ResourceTree.hpp:198: error: default argument for parameter of type ‘const wxString&’ has type ‘const char [1]’
In file included from mission/MissionTree.hpp:22,
from app/GmatAppData.hpp:25,
from app/AboutDialog.hpp:26,
from app/AboutDialog.cpp:19:
app/MissionTreeItemData.hpp:27: error: default argument for parameter of type ‘const wxString&’ has type ‘const char [1]’
In file included from mission/MissionTree.hpp:23,
from app/GmatAppData.hpp:25,
from app/AboutDialog.hpp:26,
from app/AboutDialog.cpp:19:
mission/DecoratedTree.hpp:83: error: default argument for parameter of type ‘const wxString&’ has type ‘const char [9]’
mission/DecoratedTree.hpp:96: error: default argument for parameter of type ‘wxString’ has type ‘const char [1]’
In file included from app/GmatAppData.hpp:25,
from app/AboutDialog.hpp:26,
from app/AboutDialog.cpp:19:
mission/MissionTree.hpp:174: error: default argument for parameter of type ‘const wxString&’ has type ‘const char [1]’
In file included from subscriber/MdiChildViewFrame.hpp:18,
from subscriber/MdiChildTrajFrame.hpp:18,
from app/GmatMainFrame.hpp:36,
from app/GmatAppData.hpp:27,
from app/AboutDialog.hpp:26,
from app/AboutDialog.cpp:19:
foundation/GmatMdiChildFrame.hpp:31: error: default argument for parameter of type ‘const wxString&’ has type ‘const char [1]’
foundation/GmatMdiChildFrame.hpp:32: error: default argument for parameter of type ‘const wxString&’ has type ‘const char [1]’
In file included from subscriber/MdiChildViewFrame.hpp:20,
from subscriber/MdiChildTrajFrame.hpp:18,
from app/GmatMainFrame.hpp:36,
from app/GmatAppData.hpp:27,
from app/AboutDialog.hpp:26,
from app/AboutDialog.cpp:19:
subscriber/ViewCanvas.hpp:212: error: default argument for parameter of type ‘const wxString&’ has type ‘const char [1]’
In file included from subscriber/TsPlotXYCanvas.hpp:19,
from subscriber/MdiChildTsFrame.hpp:19,
from app/GmatMainFrame.hpp:37,
from app/GmatAppData.hpp:27,
from app/AboutDialog.hpp:26,
from app/AboutDialog.cpp:19:
subscriber/TsPlotCanvas.hpp:50: error: default argument for parameter of type ‘const wxString&’ has type ‘const char [1]’
In file included from subscriber/MdiChildTsFrame.hpp:19,
from app/GmatMainFrame.hpp:37,
from app/GmatAppData.hpp:27,
from app/AboutDialog.hpp:26,
from app/AboutDialog.cpp:19:
subscriber/TsPlotXYCanvas.hpp:28: error: default argument for parameter of type ‘const wxString&’ has type ‘const char [1]’
In file included from app/GmatAppData.hpp:27,
from app/AboutDialog.hpp:26,
from app/AboutDialog.cpp:19:
app/GmatMainFrame.hpp:87: error: default argument for parameter of type ‘const wxString&’ has type ‘const char [1]’
app/GmatMainFrame.hpp:226: error: default argument for parameter of type ‘const wxString&’ has type ‘const char [1]’
app/AboutDialog.cpp: In constructor ‘AboutDialog::AboutDialog(wxWindow*, wxWindowID, const wxString&, const wxPoint&, const wxSize&, long int)’:
app/AboutDialog.cpp:67: error: conversion from ‘const char*’ to ‘wxString’ is ambiguous
/usr/include/wx-2.8/wx/string.h:692: note: candidates are: wxString::wxString(wxChar, size_t) <near match>
/usr/include/wx-2.8/wx/string.h:682: note: wxString::wxString(int) <near match>
app/AboutDialog.cpp:78: error: conversion from ‘const char [5]’ to ‘const wxString’ is ambiguous
/usr/include/wx-2.8/wx/string.h:692: note: candidates are: wxString::wxString(wxChar, size_t) <near match>
/usr/include/wx-2.8/wx/string.h:682: note: wxString::wxString(int) <near match>
app/AboutDialog.cpp:89: error: conversion from ‘const char [30]’ to ‘const wxString’ is ambiguous
/usr/include/wx-2.8/wx/string.h:692: note: candidates are: wxString::wxString(wxChar, size_t) <near match>
/usr/include/wx-2.8/wx/string.h:682: note: wxString::wxString(int) <near match>
app/AboutDialog.cpp:103: error: no matching function for call to ‘wxString::Printf(const char [19], const char [12], const char [9])’
/usr/include/wx-2.8/wx/string.h:1203: note: candidates are: int wxString::Printf(const wxChar*, ...)
app/AboutDialog.cpp:117: error: conversion from ‘const char [10]’ to ‘const wxString’ is ambiguous
/usr/include/wx-2.8/wx/string.h:692: note: candidates are: wxString::wxString(wxChar, size_t) <near match>
/usr/include/wx-2.8/wx/string.h:682: note: wxString::wxString(int) <near match>
app/AboutDialog.cpp:118: error: conversion from ‘const char [26]’ to ‘wxString’ is ambiguous
/usr/include/wx-2.8/wx/string.h:692: note: candidates are: wxString::wxString(wxChar, size_t) <near match>
/usr/include/wx-2.8/wx/string.h:682: note: wxString::wxString(int) <near match>
app/AboutDialog.cpp:120: error: conversion from ‘const char [10]’ to ‘const wxString’ is ambiguous
/usr/include/wx-2.8/wx/string.h:692: note: candidates are: wxString::wxString(wxChar, size_t) <near match>
/usr/include/wx-2.8/wx/string.h:682: note: wxString::wxString(int) <near match>
app/AboutDialog.cpp:121: error: conversion from ‘const char [19]’ to ‘const wxString’ is ambiguous
/usr/include/wx-2.8/wx/string.h:692: note: candidates are: wxString::wxString(wxChar, size_t) <near match>
/usr/include/wx-2.8/wx/string.h:682: note: wxString::wxString(int) <near match>
app/AboutDialog.cpp:140: error: conversion from ‘const char [18]’ to ‘const wxString’ is ambiguous
/usr/include/wx-2.8/wx/string.h:692: note: candidates are: wxString::wxString(wxChar, size_t) <near match>
/usr/include/wx-2.8/wx/string.h:682: note: wxString::wxString(int) <near match>
app/AboutDialog.cpp:141: error: conversion from ‘const char [27]’ to ‘wxString’ is ambiguous
/usr/include/wx-2.8/wx/string.h:692: note: candidates are: wxString::wxString(wxChar, size_t) <near match>
/usr/include/wx-2.8/wx/string.h:682: note: wxString::wxString(int) <near match>
app/AboutDialog.cpp:143: error: conversion from ‘const char [1]’ to ‘const wxString’ is ambiguous
/usr/include/wx-2.8/wx/string.h:692: note: candidates are: wxString::wxString(wxChar, size_t) <near match>
/usr/include/wx-2.8/wx/string.h:682: note: wxString::wxString(int) <near match>
app/AboutDialog.cpp:149: error: ambiguous overload for ‘operator+’ in ‘use + " - Uses "’
/usr/include/wx-2.8/wx/string.h:1421: note: candidates are: wxString operator+(const wxString&, const wxString&) <near match>
/usr/include/wx-2.8/wx/string.h:1422: note: wxString operator+(const wxString&, wxChar) <near match>
/usr/include/wx-2.8/wx/string.h:1423: note: wxString operator+(wxChar, const wxString&) <near match>
/usr/include/wx-2.8/wx/string.h:1425: note: wxString operator+(const wxChar*, const wxString&) <near match>
/usr/include/wx-2.8/wx/string.h:1618: note: wxString operator+(const wxString&, const wxWCharBuffer&) <near match>
/usr/include/wx-2.8/wx/longlong.h:1047: note: wxLongLong operator+(long int, const wxLongLong&) <near match>
/usr/include/wx-2.8/wx/longlong.h:1060: note: wxULongLong operator+(long unsigned int, const wxULongLong&) <near match>
app/AboutDialog.cpp:150: error: ambiguous overload for ‘operator+’ in ‘use + " - Uses TSPlot\012"’
/usr/include/wx-2.8/wx/string.h:1421: note: candidates are: wxString operator+(const wxString&, const wxString&) <near match>
/usr/include/wx-2.8/wx/string.h:1422: note: wxString operator+(const wxString&, wxChar) <near match>
/usr/include/wx-2.8/wx/string.h:1423: note: wxString operator+(wxChar, const wxString&) <near match>
/usr/include/wx-2.8/wx/string.h:1425: note: wxString operator+(const wxChar*, const wxString&) <near match>
/usr/include/wx-2.8/wx/string.h:1618: note: wxString operator+(const wxString&, const wxWCharBuffer&) <near match>
/usr/include/wx-2.8/wx/longlong.h:1047: note: wxLongLong operator+(long int, const wxLongLong&) <near match>
/usr/include/wx-2.8/wx/longlong.h:1060: note: wxULongLong operator+(long unsigned int, const wxULongLong&) <near match>
app/AboutDialog.cpp:151: error: ambiguous overload for ‘operator+’ in ‘use + " - Planetary images courtesy of JPL/Caltech/USGS, Celestia \012"’
/usr/include/wx-2.8/wx/string.h:1421: note: candidates are: wxString operator+(const wxString&, const wxString&) <near match>
/usr/include/wx-2.8/wx/string.h:1422: note: wxString operator+(const wxString&, wxChar) <near match>
/usr/include/wx-2.8/wx/string.h:1423: note: wxString operator+(wxChar, const wxString&) <near match>
/usr/include/wx-2.8/wx/string.h:1425: note: wxString operator+(const wxChar*, const wxString&) <near match>
/usr/include/wx-2.8/wx/string.h:1618: note: wxString operator+(const wxString&, const wxWCharBuffer&) <near match>
/usr/include/wx-2.8/wx/longlong.h:1047: note: wxLongLong operator+(long int, const wxLongLong&) <near match>
/usr/include/wx-2.8/wx/longlong.h:1060: note: wxULongLong operator+(long unsigned int, const wxULongLong&) <near match>
app/AboutDialog.cpp:152: error: ambiguous overload for ‘operator+’ in ‘use + " Motherlode, Bjorn Jonsson, and NASA World Wind"’
/usr/include/wx-2.8/wx/string.h:1421: note: candidates are: wxString operator+(const wxString&, const wxString&) <near match>
/usr/include/wx-2.8/wx/string.h:1422: note: wxString operator+(const wxString&, wxChar) <near match>
/usr/include/wx-2.8/wx/string.h:1423: note: wxString operator+(wxChar, const wxString&) <near match>
/usr/include/wx-2.8/wx/string.h:1425: note: wxString operator+(const wxChar*, const wxString&) <near match>
/usr/include/wx-2.8/wx/string.h:1618: note: wxString operator+(const wxString&, const wxWCharBuffer&) <near match>
/usr/include/wx-2.8/wx/longlong.h:1047: note: wxLongLong operator+(long int, const wxLongLong&) <near match>
/usr/include/wx-2.8/wx/longlong.h:1060: note: wxULongLong operator+(long unsigned int, const wxULongLong&) <near match>
app/AboutDialog.cpp:160: error: conversion from ‘const char [3]’ to ‘const wxString’ is ambiguous
/usr/include/wx-2.8/wx/string.h:692: note: candidates are: wxString::wxString(wxChar, size_t) <near match>
/usr/include/wx-2.8/wx/string.h:682: note: wxString::wxString(int) <near match>
app/AboutDialog.cpp:180: error: conversion from ‘const char*’ to ‘wxString’ is ambiguous
/usr/include/wx-2.8/wx/string.h:692: note: candidates are: wxString::wxString(wxChar, size_t) <near match>
/usr/include/wx-2.8/wx/string.h:682: note: wxString::wxString(int) <near match>
app/AboutDialog.cpp: In member function ‘void AboutDialog::OnHyperLinkClick(wxHyperlinkEvent&)’:
app/AboutDialog.cpp:225: error: conversion from ‘const char*’ to ‘wxString’ is ambiguous
/usr/include/wx-2.8/wx/string.h:692: note: candidates are: wxString::wxString(wxChar, size_t) <near match>
/usr/include/wx-2.8/wx/string.h:682: note: wxString::wxString(int) <near match>
app/AboutDialog.cpp:226: error: ambiguous overload for ‘operator+’ in ‘rootPath + "License.txt"’
/usr/include/wx-2.8/wx/string.h:1421: note: candidates are: wxString operator+(const wxString&, const wxString&) <near match>
/usr/include/wx-2.8/wx/string.h:1422: note: wxString operator+(const wxString&, wxChar) <near match>
/usr/include/wx-2.8/wx/string.h:1423: note: wxString operator+(wxChar, const wxString&) <near match>
/usr/include/wx-2.8/wx/string.h:1425: note: wxString operator+(const wxChar*, const wxString&) <near match>
/usr/include/wx-2.8/wx/string.h:1618: note: wxString operator+(const wxString&, const wxWCharBuffer&) <near match>
/usr/include/wx-2.8/wx/longlong.h:1047: note: wxLongLong operator+(long int, const wxLongLong&) <near match>
/usr/include/wx-2.8/wx/longlong.h:1060: note: wxULongLong operator+(long unsigned int, const wxULongLong&) <near match>
make[2]: *** [app/AboutDialog.o] Error 1
make[2]: Leaving directory `/home/healy/satellite/gmat/src/gui'
make[1]: *** [gui/gmat] Error 2
make[1]: Leaving directory `/home/healy/satellite/gmat/src'
make: *** [all] Error 2
healy
 
Posts: 6
Joined: Wed Nov 03, 2010 1:36 pm

Re: Linux failure to compile wxString-related

Postby DJCinSB » Wed Nov 03, 2010 4:17 pm

Most precompiled wxWidgets libraries on Linux are built with unicode support. GMAT is not unicode compliant. You'll need to recompile wxWidgets to get it to work with GMAT's code. To do that, download the latest wx 2.8 code base (I'm using 2.8.11 on Ubuntu amd64). Open a terminal window, cd to the wx source directory, run configure, make, and make install. Here are the details of what I usually do (being paranoid and not wanting to corrupt the wx folders) for code in ~/wxGTK-2.8.11:
Code: Select all
$ cd ~/wxGTK-2.8.11
$ mkdir shared
$ cd shared
$ ../configure --with-opengl
...
$ make
...
$ sudo make install

(The ellipses indicate places where there is a lot of terminal output during processing.) Then to test my build, I compile and run one of the OpenGL sample programs. Continuing in the same terminal window::
Code: Select all
$ cd samples/opengl/cube
$ make
$ ./cube

If all went well, I see this:
Screenshot-wxWidgets OpenGL Cube Sample.png
DJCinSB
 
Posts: 274
Joined: Mon Jun 09, 2008 3:57 pm

Re: Linux failure to compile wxString-related

Postby healy » Fri Nov 12, 2010 7:37 pm

OK I built and installed wxWidgets (2.8.11) from source downloaded from http://www.wxwidgets.org/downloads/. The I tried compiling GMAT; this is the latest development version (8718). The make ends in error; here is the tail end of the output:

cd gui; make -f MakeGui.eclipse all
make[2]: Entering directory `/home/healy/satellite/gmat/src/gui'
mkdir -p ../../bin
rm -f app/AboutDialog.o
g++ -O3 -fno-strict-aliasing -ffriend-injection -D__USE_WX280__ -D__USE_WX280_GL__ -DwxUSE_GLCANVAS -Wall `wx-config --cppflags` -DUSE_64_BIT_LONGS -I/usr/local/include/IL -fPIC -I../base/include -I../base/asset -I../base/attitude -I../base/burn -I../base/command -I../base/configs -I../base/coordsystem -I../base/executive -I../base/factory -I../base/forcemodel -I../base/foundation -I../base/function -I../base/hardware -I../base/interface -I../base/interpolator -I../base/interpreter -I../base/math -I../base/parameter -I../base/plugin -I../base/propagator -I../base/solarsys -I../base/solver -I../base/spacecraft -I../base/stopcond -I../base/subscriber -I../base/util -Iinclude -Iinclude/bitmaps -Iinclude/il -Iapp -Iasset -Iburn -Icommand -Icontrollogic -Icoordsystem -Iforcemodel -Ifoundation -Ifunction -Ihardware -Imission -Ioutput -Ipropagator -Irendering -Isolarsys -Isolver -Ispacecraft -Isubscriber -Iview -c -o app/AboutDialog.o app/AboutDialog.cpp
In file included from /usr/local/include/wx-2.8/wx/platform.h:196,
from /usr/local/include/wx-2.8/wx/defs.h:21,
from /usr/local/include/wx-2.8/wx/wxprec.h:13,
from include/gmatwxdefs.hpp:27,
from app/AboutDialog.hpp:22,
from app/AboutDialog.cpp:19:
/usr/local/lib/wx/include/gtk2-ansi-release-2.8/wx/setup.h:447:1: warning: "wxUSE_GLCANVAS" redefined
<command-line>: warning: this is the location of the previous definition
In file included from subscriber/MdiChildViewFrame.hpp:20,
from subscriber/MdiChildTrajFrame.hpp:18,
from app/GmatMainFrame.hpp:36,
from app/GmatAppData.hpp:27,
from app/AboutDialog.hpp:26,
from app/AboutDialog.cpp:19:
subscriber/ViewCanvas.hpp:31: error: expected class-name before ‘{’ token
subscriber/ViewCanvas.hpp:67: error: ISO C++ forbids declaration of ‘wxGLContext’ with no type
subscriber/ViewCanvas.hpp:67: error: ‘wxGLContext’ declared as a ‘virtual’ field
subscriber/ViewCanvas.hpp:67: error: expected ‘;’ before ‘*’ token
subscriber/ViewCanvas.hpp:92: error: ‘wxGLContext’ has not been declared
In file included from subscriber/MdiChildTrajFrame.hpp:18,
from app/GmatMainFrame.hpp:36,
from app/GmatAppData.hpp:27,
from app/AboutDialog.hpp:26,
from app/AboutDialog.cpp:19:
subscriber/MdiChildViewFrame.hpp:48: error: ISO C++ forbids declaration of ‘wxGLContext’ with no type
subscriber/MdiChildViewFrame.hpp:48: error: ‘wxGLContext’ declared as a ‘virtual’ field
subscriber/MdiChildViewFrame.hpp:48: error: expected ‘;’ before ‘*’ token
subscriber/MdiChildViewFrame.hpp:63: error: ‘wxGLContext’ has not been declared
make[2]: *** [app/AboutDialog.o] Error 1
make[2]: Leaving directory `/home/healy/satellite/gmat/src/gui'
make[1]: *** [gui/gmat] Error 2
make[1]: Leaving directory `/home/healy/satellite/gmat/src'
make: *** [all] Error 2

Any ideas on what to do here?

Liam
healy
 
Posts: 6
Joined: Wed Nov 03, 2010 1:36 pm

Re: Linux failure to compile wxString-related

Postby DJCinSB » Fri Nov 12, 2010 11:22 pm

Hi, Liam.

This looks to me like your wxWidgets build is missing the OpenGL extensions. When you ran configure for it, did you specify "--with-opengl", like this:

Code: Select all
$ configure --with-opengl


before making the libraries? One way to tell if the GL extensions are there is to open a terminal and type "wx-config --gl-libs". You should get as a return the name of the wx gl library. Here's what I see when I do this:

Code: Select all
$ wx-config --gl-libs
-lwx_gtk2_gl-2.8


Check to see if that happens for you.

- Darrel
DJCinSB
 
Posts: 274
Joined: Mon Jun 09, 2008 3:57 pm

Re: Linux failure to compile wxString-related

Postby healy » Mon Nov 15, 2010 6:38 pm

OK, right I just blew right past that in your previous instructions and just did configure/make/make install. So I've redone configure with --with-opengl and I do get
wx-config --gl-libs
-lwx_gtk2_gl-2.8
and so I installed wx and then tried recompiling GMAT from scratch, and I still get an error:

g++ -O3 -fno-strict-aliasing -ffriend-injection -D__USE_WX280__ -D__USE_WX280_GL__ -DwxUSE_GLCANVAS -Wall `wx-config --cppflags` -DUSE_64_BIT_LONGS -I/usr/local/include/IL -fPIC -I../base/include -I../base/asset -I../base/attitude -I../base/burn -I../base/command -I../base/configs -I../base/coordsystem -I../base/executive -I../base/factory -I../base/forcemodel -I../base/foundation -I../base/function -I../base/hardware -I../base/interface -I../base/interpolator -I../base/interpreter -I../base/math -I../base/parameter -I../base/plugin -I../base/propagator -I../base/solarsys -I../base/solver -I../base/spacecraft -I../base/stopcond -I../base/subscriber -I../base/util -Iinclude -Iinclude/bitmaps -Iinclude/il -Iapp -Iasset -Iburn -Icommand -Icontrollogic -Icoordsystem -Iforcemodel -Ifoundation -Ifunction -Ihardware -Imission -Ioutput -Ipropagator -Irendering -Isolarsys -Isolver -Ispacecraft -Isubscriber -Iview -c -o subscriber/Enhanced3DViewCanvas.o subscriber/Enhanced3DViewCanvas.cpp
subscriber/Enhanced3DViewCanvas.cpp:67:21: error: IL/il.h: No such file or directory
subscriber/Enhanced3DViewCanvas.cpp:68:22: error: IL/ilu.h: No such file or directory
subscriber/Enhanced3DViewCanvas.cpp:69:23: error: IL/ilut.h: No such file or directory
subscriber/Enhanced3DViewCanvas.cpp: In member function ‘bool Enhanced3DViewCanvas::InitOpenGL()’:
subscriber/Enhanced3DViewCanvas.cpp:454: error: ‘ilInit’ was not declared in this scope
subscriber/Enhanced3DViewCanvas.cpp:455: error: ‘ilutInit’ was not declared in this scope
subscriber/Enhanced3DViewCanvas.cpp:456: error: ‘ILUT_OPENGL’ was not declared in this scope
subscriber/Enhanced3DViewCanvas.cpp:456: error: ‘ilutRenderer’ was not declared in this scope
subscriber/Enhanced3DViewCanvas.cpp: In member function ‘virtual GLuint Enhanced3DViewCanvas::BindTexture(SpacePoint*, const wxString&)’:
subscriber/Enhanced3DViewCanvas.cpp:2403: error: ‘ILboolean’ was not declared in this scope
subscriber/Enhanced3DViewCanvas.cpp:2403: error: expected ‘;’ before ‘status’
subscriber/Enhanced3DViewCanvas.cpp:2404: error: ‘status’ was not declared in this scope
subscriber/Enhanced3DViewCanvas.cpp:2415: error: ‘ilutGLBindTexImage’ was not declared in this scope
subscriber/Enhanced3DViewCanvas.cpp: In member function ‘virtual void Enhanced3DViewCanvas::DrawOrbitLines(int, const wxString&, int, int)’:
subscriber/Enhanced3DViewCanvas.cpp:3584: warning: suggest parentheses around ‘&&’ within ‘||’
make[2]: *** [subscriber/Enhanced3DViewCanvas.o] Error 1
make[2]: Leaving directory `/home/healy/satellite/gmat/src/gui'
make[1]: *** [gui/gmat] Error 2
make[1]: Leaving directory `/home/healy/satellite/gmat/src'
make: *** [all] Error 2

Is something else missing?

Thanks,
Liam
healy
 
Posts: 6
Joined: Wed Nov 03, 2010 1:36 pm

Re: Linux failure to compile wxString-related

Postby DJCinSB » Mon Nov 15, 2010 9:29 pm

Almost there!

The texture maps for the planets are imported (on Linux) using the DevIL libraries; one note on building that part can be found here:

http://gmat.ed-pages.com/wiki/tiki-inde ... L+on+Linux

DevIL has some issues, and I keep hoping we can move away from needing it on Linux, but so far we still need it if you want the Earth to show continents, the Moon craters, and so forth. If you don't care about the texture maps (or just want to get a build working and then fix that part later), change this line in your BuildEnv file:
Code: Select all
USE_DEVIL = 1

to this:
Code: Select all
USE_DEVIL = 0

I build on (64 bit) Linux with the 1.6.8 RC2 DevIL code and it works well for GMAT's needs. The 1.7 code base mirror images the bitmaps (or did for a while), so I don't use it.

I can send you my copy of the DevIL code that works here (my address is djc_at_thinksysinc_dot_com, with appropriate substitutions, of course; I'd send you the code directly, but know know where to send it!). I don't think I can post it to the forums though because of the licensing restrictions. (The code I have is LGPL 2.1, which is problematic to distribute on the NASA forums.)

The warning messages for && and || are new to the gcc compiler (as of 4.3 or 4.4 -- I don't remember which). I've been slowly cleaning them up on down time as they occurred, but down time has been rather scarce of late!

Hope that helps. Let me know!

- Darrel
DJCinSB
 
Posts: 274
Joined: Mon Jun 09, 2008 3:57 pm

Compile and run on Linux

Postby healy » Mon Nov 15, 2010 10:59 pm

Bingo, it compiles and runs! I got the library with
Code: Select all
aptitude install libdevil-dev
and that gave me version 1.7.8-6+b1 in Debian testing (squeeze), and that works. I will post my compile set of steps, but there is still a small problem. When I try to get the 3D view, I get an error:
Code: Select all
05:42:07 PM: can't open file './files/plot/stars/inp_StarCatalog.txt' (error 2: No such file or directory)
05:42:07 PM: can't open file './files/plot/stars/inp_Constellation.txt' (error 2: No such file or directory)

Per the bin_setup.txt instructions, I had retrieved "environment data file archive" from SourceForge. There were several versions, and I got gmat-datafiles-2008-09-30.tar.gz because it looked like the newest version. Is there some other source for these files?

Liam
healy
 
Posts: 6
Joined: Wed Nov 03, 2010 1:36 pm

Re: Linux failure to compile wxString-related

Postby DJCinSB » Mon Nov 15, 2010 11:23 pm

Great!

Stars were added to GMAT very recently by the kind folks at the Schafer Corporation. You can get the star data (the catalog and constellation outlines) -- and updates to the other data files -- in GMAT's trunk repository on SourceForge. For the stars and constellations, you need the files in the trunk/bin/files/plot/stars folder. If you check out the full "files" folder you'll have all of the most recent data files (but the checkout will take a while -- it takes a couple of hours for me working through a cable modem). The files folder goes in your bin folder containing the executable you built, with subfolders mapping 1:1 from trunk. (I just set a symbolic link in bin to point to files from trunk -- but then, I have both trunk and development checked out to do my job.)

We are working hard on getting a real official formal 1.0 release ready. The original schedule had us slated for mid-December, but it's looking like 1Q2011 at this point. (How's that for a big target to shoot for? My best guess right now is sometime in March, but with really quite thorough testing for the Windows version of GMAT. The "engine" side of GMAT will be very thoroughly checked out at that point -- mostly is already -- but the GUI for Linux and Mac will still have edges that need polishing.)

- Darrel
DJCinSB
 
Posts: 274
Joined: Mon Jun 09, 2008 3:57 pm

Re: Linux failure to compile wxString-related (fixed?)

Postby SWGlassPit » Wed Oct 19, 2011 9:01 pm

I took a Subversion snapshot from August 30 and modified the code to be Unicode-compliant. It took the better part of a month to do, but I finally have a source tree that builds the GUI app on a Unicode-based wxWidgets library. I've posted it to my github account: https://github.com/SWGlassPit/GMAT-unicode. If anybody wants to pull that and give it a whirl, that would be great. I've only built it on a 32-bit Fedora 15 machine. I haven't actually tested the binary for correctness or stability yet.
SWGlassPit
 
Posts: 15
Joined: Wed Oct 19, 2011 8:56 pm

Re: Linux failure to compile wxString-related

Postby shughes » Wed Oct 19, 2011 10:04 pm

This is a major effort and thanks for taking the time to do this. I'd be willing to test but only have Windows and Mac boxes right now.

Can you explain what high level changes were required?
shughes
 
Posts: 443
Joined: Mon Jun 09, 2008 6:27 pm

Next

Return to Compiling GMAT

Who is online

Users browsing this forum: No registered users and 2 guests