Hi Alan

I have a wxWidgets application that I developed for Windows and Linux that uses 
PLplot .

I started having a segfault on the *Linux* only version.

Debugging in Windows is a breeze with Visual Studio.

For Linux I was able to make a QtCreator project to debug (yes, Qt debugging 
wxWidgets !)

However when I try to step into the PLplot code, there is no step into, because 
probably debugging symbols were not built

I used the following cmake call

cmake ..  -G "Unix Makefiles" -DBUILD_SHARED_LIBS:BOOL=OFF 
-DENABLE_f95:BOOL=OFF -DENABLE_tcl:BOOL=OFF -DENABLE_tk:BOOL=OFF 
-DCMAKE_INSTALL_PREFIX:PATH=/data/data127/pvicente/install/plplot-5.11.1 
-DPL_HAVE_PTHREAD:BOOL=OFF -DPLD_xwin:BOOL=OFF -DPLD_wxwidgets:BOOL=ON 
-DwxWidgets_ROOT_DIR:PATH=/data/data127/pvicente/install/wxwidgets-3.1.0 
-DwxWidgets_LIB_DIR:PATH=/data/data127/pvicente/install/wxwidgets-3.1.0/lib 
-DwxWidgets_CONFIGURATION=mswud -DENABLE_MIX_CXX=ON 
-DwxWidgets_EXCLUDE_COMMON_LIBRARIES:BOOL=OFF


this is more probably a cmake question, but I am not that familiar with cmake, 
so the question is, 
how can I add debug symbols to PLPlot for  the above cmake call?

The code is attached 

The segfault happens when I try to get into the init() call here

wx_PLplotstream* pls = frame->GetStream();
pls->init();

The weird thing is that I have nearly identical code for other application that 
works fine

when I was learning the PLplot code , and the app was just exiting for unknow 
reasons I found out that the init() call is dependent on at least 2 pallete and 
2 font

files to read from several "standard" locations.

Since I develop cross platforms and in many machines I ended up doing a svn 
repository with those 4 files at the same location as the program, like that 
they are always found.

but that is not the cause here, because those file are found (by the way, is 
there a way to eliminate the need to read those files?)

The Qt project is also attached in case anyone needs a Qt project to debug 
wxWidgets and PLPlot

thanks

-Pedro




#include <assert.h>
#include <jansson.h>
#include "wx/wxprec.h"
#include "wx/wx.h"
//icons
#include "icons/sample.xpm"
#include "icons/back.xpm"
#include "icons/forward.xpm"
#include "icons/doc_blue.xpm"
#ifdef HAVE_VLD
#include "vld.h"
#endif
//local
#include "wx_thread.hh"
#include "wx_client.hh"
#include "socket.hh"
#include "rdr_read.hh"
//plot
#ifdef HAVE_PLPLOT_WX
#include "wx_plplotwindow.hpp"
template< class WXWINDOW >
void plot_points(wx_PLplotwindow<WXWINDOW> *plotwindow);
template< class WXWINDOW >
void plot_bars(wx_PLplotwindow<WXWINDOW> *plotwindow);
#endif

const unsigned short port = 2000;

/////////////////////////////////////////////////////////////////////////////////////////////////////
//get_app_name
/////////////////////////////////////////////////////////////////////////////////////////////////////

wxString get_app_name()
{
  wxString str(wxT("STAR Reader"));
  return str;
}

/////////////////////////////////////////////////////////////////////////////////////////////////////
//wxAppClient
/////////////////////////////////////////////////////////////////////////////////////////////////////

wxIMPLEMENT_APP(wxAppClient);

/////////////////////////////////////////////////////////////////////////////////////////////////////
//wxAppClient::OnInit()
/////////////////////////////////////////////////////////////////////////////////////////////////////

bool wxAppClient::OnInit()
{
  if (!wxApp::OnInit())
  {
    return false;
  }
  wxFrameClient *frame = new wxFrameClient();
  frame->Show(true);
  frame->Maximize();
  return true;
}

/////////////////////////////////////////////////////////////////////////////////////////////////////
//wxFrameClient::wxFrameClient
//Note: set size to 1000 to avoid Gtk-CRITICAL IA__gtk_widget_set_size_request
/////////////////////////////////////////////////////////////////////////////////////////////////////

wxBEGIN_EVENT_TABLE(wxFrameClient, wxMDIParentFrame)
EVT_CLOSE(wxFrameClient::OnClose)
EVT_MENU(wxID_EXIT, wxFrameClient::OnQuit)
EVT_MENU(wxID_ABOUT, wxFrameClient::OnAbout)
EVT_MENU(ID_WINDOW_FRAME_GRID, wxFrameClient::event_grid)
EVT_MENU(ID_WINDOW_FRAME_PLOT_POINT, wxFrameClient::event_plot_point)
EVT_SIZE(wxFrameClient::OnSize)
EVT_CALENDAR_SEL_CHANGED(ID_CALENDAR_START, 
wxFrameClient::event_calendar_start_change)
EVT_CALENDAR_SEL_CHANGED(ID_CALENDAR_END, 
wxFrameClient::event_calendar_end_change)
EVT_TEXT_ENTER(ID_WINDOW_TOOLBAR_TEXTCTRL_SERVER, 
wxFrameClient::event_textctrl_server)
EVT_COMMAND(wxID_ANY, EVENT_STATUS_BAR, wxFrameClient::update_status_bar)
EVT_COMMAND(wxID_ANY, EVENT_GAUGE_VALUE, wxFrameClient::update_gauge_value)
EVT_COMMAND(wxID_ANY, EVENT_GAUGE_RANGE, wxFrameClient::update_gauge_range)
EVT_COMMAND(wxID_ANY, EVENT_SET_DATA, wxFrameClient::update_set_data)
wxEND_EVENT_TABLE()

wxFrameClient::wxFrameClient() :
  wxMDIParentFrame(NULL, wxID_ANY, get_app_name(), wxPoint(0, 0), wxSize(1000, 
840)),
  m_thread(NULL)
{
  int w, h;
  GetClientSize(&w, &h);
  wxSashLayoutWindow* win;

  SetIcon(wxICON(sample));

  
/////////////////////////////////////////////////////////////////////////////////////////////////////
  //menu
  
/////////////////////////////////////////////////////////////////////////////////////////////////////

  wxMenu *menu_file = new wxMenu;
  menu_file->Append(wxID_EXIT, "E&xit\tAlt-X", "Quit this program");
  wxMenu *menu_data = new wxMenu;
  menu_data->Append(ID_WINDOW_FRAME_GRID, "Show &Grid", "Show grid");
  menu_data->Append(ID_WINDOW_FRAME_PLOT_POINT, "Show &Point plot", "Show point 
plot");
  wxMenu *menu_help = new wxMenu;
  menu_help->Append(wxID_ABOUT, "&About\tF1", "Show about dialog");

  wxMenuBar *menu_bar = new wxMenuBar();
  menu_bar->Append(menu_file, "&File");
  menu_bar->Append(menu_data, "&Data");
  menu_bar->Append(menu_help, "&Help");
  SetMenuBar(menu_bar);
  CreateStatusBar(2);
  SetStatusText("Ready");

  
/////////////////////////////////////////////////////////////////////////////////////////////////////
  //calendar pane
  
/////////////////////////////////////////////////////////////////////////////////////////////////////

  win = new wxSashLayoutWindow(this, ID_WINDOW_SASH_CALENDAR, 
wxDefaultPosition, wxDefaultSize, wxNO_BORDER | wxSW_3D | wxCLIP_CHILDREN);
  win->SetDefaultSize(wxSize(300, h));
  win->SetOrientation(wxLAYOUT_VERTICAL);
  win->SetAlignment(wxLAYOUT_RIGHT);
  win->SetSashVisible(wxSASH_RIGHT, true);
  win->SetExtraBorderSize(10);
  win->SetMinimumSizeX(100);
  win->SetBackgroundColour(*wxWHITE);

  m_sash_calendar = win;

  m_date_start.Set(30, wxDateTime::May, 2016, 0, 0, 0, 0);
  m_date_end.Set(1, wxDateTime::Jun, 2016, 0, 0, 0, 0);
  m_panel = new PanelCalendar(m_sash_calendar, m_date_start, m_date_end);

  
/////////////////////////////////////////////////////////////////////////////////////////////////////
  //toolbar
  
/////////////////////////////////////////////////////////////////////////////////////////////////////

  wxToolBar* toolbar = CreateToolBar();

  wxArrayString strings;
  strings.Add(wxT("173.66.46.228"));
  strings.Add(wxT("127.0.0.1"));
  strings.Add(wxT("rhw9121.star1.nesdis.noaa.gov"));
  m_textctrl_server = new wxTextCtrl(toolbar, 
ID_WINDOW_TOOLBAR_TEXTCTRL_SERVER, strings[1], wxDefaultPosition, wxSize(500, 
-1), wxTE_PROCESS_ENTER);
  toolbar->AddControl(m_textctrl_server);
  toolbar->AddSeparator();

  m_gauge = new wxGauge();
  wxSize size = m_textctrl_server->GetSize();
  size.SetWidth(size.GetWidth());
  m_gauge->Create(toolbar, ID_WINDOW_TOOLBAR_GAUGE, 0, wxDefaultPosition, 
wxSize(size), wxGA_HORIZONTAL | wxGA_SMOOTH);
  toolbar->AddControl(m_gauge);
  toolbar->Realize();
}

/////////////////////////////////////////////////////////////////////////////////////////////////////
//wxFrameClient::~wxFrameClient
/////////////////////////////////////////////////////////////////////////////////////////////////////

wxFrameClient::~wxFrameClient()
{
}

/////////////////////////////////////////////////////////////////////////////////////////////////////
//wxFrameClient::OnClose
/////////////////////////////////////////////////////////////////////////////////////////////////////

void wxFrameClient::OnClose(wxCloseEvent&)
{
  {
    wxCriticalSectionLocker enter(m_critical_section);
    if (m_thread)
    {
      m_thread->Delete();
    }
  }
  // exit from the critical section to give the thread
  // the possibility to enter its destructor
  while (1)
  {
    {
      wxCriticalSectionLocker enter(m_critical_section);
      if (!m_thread) break;
    }
    // wait for thread completion
    wxThread::This()->Sleep(1);
  }
  Destroy();
}

/////////////////////////////////////////////////////////////////////////////////////////////////////
//wxFrameClient::OnSize
/////////////////////////////////////////////////////////////////////////////////////////////////////

void wxFrameClient::OnSize(wxSizeEvent& WXUNUSED(eve))
{
  wxLayoutAlgorithm layout;
  layout.LayoutMDIFrame(this);
}

/////////////////////////////////////////////////////////////////////////////////////////////////////
//wxFrameClient::OnQuit
/////////////////////////////////////////////////////////////////////////////////////////////////////

void wxFrameClient::OnQuit(wxCommandEvent& WXUNUSED(eve))
{
  Close(true);
}

/////////////////////////////////////////////////////////////////////////////////////////////////////
//wxFrameClient::OnAbout
/////////////////////////////////////////////////////////////////////////////////////////////////////

void wxFrameClient::OnAbout(wxCommandEvent& WXUNUSED(eve))
{
  wxMessageBox("NOAA ICVS\n\n", get_app_name(), wxOK, this);
}

/////////////////////////////////////////////////////////////////////////////////////////////////////
//wxFrameClient::event_calendar_start_change
/////////////////////////////////////////////////////////////////////////////////////////////////////

void wxFrameClient::event_calendar_start_change(wxCalendarEvent& event)
{
  wxString str;
  m_date_start = event.GetDate();
  str.Printf(wxT("Start date: %s"), m_date_start.FormatISODate().c_str());
  m_panel->m_text_start->SetLabel(str);
}

/////////////////////////////////////////////////////////////////////////////////////////////////////
//wxFrameClient::event_calendar_end_change
/////////////////////////////////////////////////////////////////////////////////////////////////////

void wxFrameClient::event_calendar_end_change(wxCalendarEvent& event)
{
  wxString str;
  m_date_end = event.GetDate();
  str.Printf(wxT("End date: %s"), m_date_end.FormatISODate().c_str());
  m_panel->m_text_end->SetLabel(str);
}

/////////////////////////////////////////////////////////////////////////////////////////////////////
//wxFrameClient::event_textctrl_server
/////////////////////////////////////////////////////////////////////////////////////////////////////

void wxFrameClient::event_textctrl_server(wxCommandEvent& WXUNUSED(eve))
{
  m_gauge->SetRange(1);
  m_gauge->Pulse();
  m_thread = new wxThreadReceive(this, m_textctrl_server->GetValue());
  wxThreadError err = m_thread->Create();
  err = m_thread->Run();
}

/////////////////////////////////////////////////////////////////////////////////////////////////////
//wxFrameClient::update_status_bar
//called when the event from the thread is received
/////////////////////////////////////////////////////////////////////////////////////////////////////

void wxFrameClient::update_status_bar(wxCommandEvent& evt)
{
  GetStatusBar()->SetStatusText(evt.GetString());
}

/////////////////////////////////////////////////////////////////////////////////////////////////////
//wxFrameClient::update_gauge_value
//called when the event from the thread is received
/////////////////////////////////////////////////////////////////////////////////////////////////////

void wxFrameClient::update_gauge_value(wxCommandEvent& evt)
{
  m_gauge->SetValue(evt.GetInt());
}

/////////////////////////////////////////////////////////////////////////////////////////////////////
//wxFrameClient::update_gauge_range
//called when the event from the thread is received
/////////////////////////////////////////////////////////////////////////////////////////////////////

void wxFrameClient::update_gauge_range(wxCommandEvent& evt)
{
  m_gauge->SetRange(evt.GetInt());
}

/////////////////////////////////////////////////////////////////////////////////////////////////////
//wxFrameClient::update_set_data
//called when the event from the thread is received
/////////////////////////////////////////////////////////////////////////////////////////////////////

void wxFrameClient::update_set_data(wxCommandEvent& evt)
{
  //delete data from previous request, if any
  m_vec_current_anomaly.clear();
  json_t *response_orbit = (json_t *)evt.GetClientData();

  //parse JSON
  json_t *json_object = json_object_get(response_orbit, "current_anomaly");
  assert(json_is_object(json_object));
  const char *json_key;
  json_t *json_value;
  json_object_foreach(json_object, json_key, json_value)
  {
    size_t size_arr = json_array_size(json_value);
    assert(size_arr == 7);
    orbit_current_anomaly_t oc(
      static_cast<int>(json_integer_value(json_array_get(json_value, 0))), 
//orbit_number
      static_cast<int>(json_integer_value(json_array_get(json_value, 1))), 
//year
      static_cast<int>(json_integer_value(json_array_get(json_value, 2))), 
//month
      static_cast<int>(json_integer_value(json_array_get(json_value, 3))), //day
      json_real_value(json_array_get(json_value, 4)), //mean
      json_real_value(json_array_get(json_value, 5)), //max
      json_real_value(json_array_get(json_value, 6))); //min
    m_vec_current_anomaly.push_back(oc);
  }

  json_decref(response_orbit);
  wxFrameGrid *subframe = new wxFrameGrid(this, "Grid");
  subframe->Show(true);
}

/////////////////////////////////////////////////////////////////////////////////////////////////////
//wxFrameClient::event_grid
/////////////////////////////////////////////////////////////////////////////////////////////////////

void wxFrameClient::event_grid(wxCommandEvent& WXUNUSED(eve))
{
  if (m_vec_current_anomaly.size())
  {
    wxFrameGrid *subframe = new wxFrameGrid(this, "Grid");
    subframe->Show(true);
  }
}

/////////////////////////////////////////////////////////////////////////////////////////////////////
//wxGridOrbit::wxGridOrbit
/////////////////////////////////////////////////////////////////////////////////////////////////////

wxBEGIN_EVENT_TABLE(wxGridOrbit, wxGrid)
wxEND_EVENT_TABLE()

wxGridOrbit::wxGridOrbit(wxWindow *parent, const wxSize& size) :
  wxGrid(parent, wxID_ANY, wxPoint(0, 0), size, wxNO_BORDER)
{
  wxFrameGrid *frame = (wxFrameGrid*)GetParent();
  wxFrameClient *main = (wxFrameClient*)frame->GetParent();
  std::vector<orbit_current_anomaly_t> &orbit = main->m_vec_current_anomaly;

  
/////////////////////////////////////////////////////////////////////////////////////////////////////
  //define grid
  
/////////////////////////////////////////////////////////////////////////////////////////////////////

  m_nbr_rows = orbit.size();
  m_nbr_cols = 5;
  this->CreateGrid(m_nbr_rows, m_nbr_cols);
  this->MakeGrid(orbit);
}

/////////////////////////////////////////////////////////////////////////////////////////////////////
//wxGridOrbit::~wxGridOrbit
/////////////////////////////////////////////////////////////////////////////////////////////////////

wxGridOrbit::~wxGridOrbit()
{
}

/////////////////////////////////////////////////////////////////////////////////////////////////////
//wxGridOrbit::MakeGrid
/////////////////////////////////////////////////////////////////////////////////////////////////////

void wxGridOrbit::MakeGrid(const std::vector<orbit_current_anomaly_t> &orbit)
{
  this->SetColSize(0, 200);
  this->SetColSize(1, 150);
  this->SetColSize(2, 150);
  this->SetColSize(3, 150);
  this->SetColSize(4, 150);
  this->SetColLabelValue(0, wxT("Orbit number"));
  this->SetColLabelValue(1, wxT("Date"));
  this->SetColLabelValue(2, wxT("Mean"));
  this->SetColLabelValue(3, wxT("Maximum"));
  this->SetColLabelValue(4, wxT("Minimum"));

  for (int idx_row = 0; idx_row < m_nbr_rows; idx_row++)
  {
    orbit_current_anomaly_t ob = orbit.at(idx_row);
    this->SetCellValue(idx_row, 0, wxString::Format(wxT("%i"), 
ob.orbit_number));
    wxDateTime dt;
    dt.Set(ob.day, (wxDateTime::Month)(ob.month - 1), ob.year, 0, 0, 0, 0);
    this->SetCellValue(idx_row, 1, dt.FormatISODate());
    this->SetCellValue(idx_row, 2, wxString::Format(wxT("%f"), ob.mean));
    this->SetCellValue(idx_row, 3, wxString::Format(wxT("%f"), ob.maximum));
    this->SetCellValue(idx_row, 4, wxString::Format(wxT("%f"), ob.minimum));
  }
}

/////////////////////////////////////////////////////////////////////////////////////////////////////
//wxFrameGrid::wxFrameGrid
/////////////////////////////////////////////////////////////////////////////////////////////////////

wxBEGIN_EVENT_TABLE(wxFrameGrid, wxFrame)
EVT_MENU(ID_WINDOW_GRID_QUIT, wxFrameGrid::OnQuit)
wxEND_EVENT_TABLE()

wxFrameGrid::wxFrameGrid(wxMDIParentFrame *parent, const wxString& title) :
  wxFrame(parent, wxID_ANY, title, wxDefaultPosition, wxDefaultSize, 
wxDEFAULT_FRAME_STYLE | wxNO_FULL_REPAINT_ON_RESIZE | wxFRAME_FLOAT_ON_PARENT)
{
  SetIcon(wxICON(sample));
  m_grid = new wxGridOrbit(this, GetClientSize());
  Raise();
}

/////////////////////////////////////////////////////////////////////////////////////////////////////
//wxFrameGrid::OnActivate
/////////////////////////////////////////////////////////////////////////////////////////////////////

void wxFrameGrid::OnActivate(wxActivateEvent& event)
{
  if (event.GetActive() && m_grid)
    m_grid->SetFocus();
}

/////////////////////////////////////////////////////////////////////////////////////////////////////
//wxFrameGrid::OnQuit
/////////////////////////////////////////////////////////////////////////////////////////////////////

void wxFrameGrid::OnQuit(wxCommandEvent& WXUNUSED(eve))
{
  Close(true);
}

/////////////////////////////////////////////////////////////////////////////////////////////////////
//wxFrameClient::event_plot_point
/////////////////////////////////////////////////////////////////////////////////////////////////////

void wxFrameClient::event_plot_point(wxCommandEvent& WXUNUSED(eve))
{
  wx_PLplotwindow<wxFrame> *frame = new wx_PLplotwindow<wxFrame>();

  frame->Create(this,
    wxID_ANY,
    "Plot",
    wxDefaultPosition,
    wxSize(900, 700),
    wxDEFAULT_FRAME_STYLE | wxNO_FULL_REPAINT_ON_RESIZE | 
wxFRAME_FLOAT_ON_PARENT);
  frame->Show(true);

  wx_PLplotstream* pls = frame->GetStream();
  pls->init();

  pls->adv(0);
  pls->scol0(0, 255, 255, 255);
  pls->clear();
  pls->scol0(1, 0, 0, 0);

  plot_points(frame);

}

/////////////////////////////////////////////////////////////////////////////////////////////////////
//plot_points
/////////////////////////////////////////////////////////////////////////////////////////////////////

#ifdef HAVE_PLPLOT_WX
template< class WXWINDOW >
void plot_points(wx_PLplotwindow<WXWINDOW> *plotwindow)
{
  wxFrameClient* frame = (wxFrameClient*)plotwindow->GetParent();
  std::vector<orbit_current_anomaly_t> &ob = frame->m_vec_current_anomaly;

  wx_PLplotstream* pls = plotwindow->GetStream();
  const int NSIZE = ob.size();
  PLFLT xmin, xmax, ymin, ymax;
  PLFLT *x, *y;
  xmin = 0;
  xmax = NSIZE;
  ymin = -0.5;
  ymax = 5.0;
  x = new PLFLT[NSIZE];
  y = new PLFLT[NSIZE];

  pls->schr(0, 1.2);
  pls->col0(1);
  pls->env(xmin, xmax, ymin, ymax, 0, 0);
  pls->lab("", "Current (Amps)", "Scan Drive Main Motor Current");

  //time axis
  for (int idx_orb = 0; idx_orb < NSIZE; idx_orb++)
  {
    x[idx_orb] = idx_orb;
  }

  //mean
  pls->col0(1); //black
  for (int idx_orb = 0; idx_orb < NSIZE; idx_orb++)
  {
    y[idx_orb] = ob[idx_orb].mean;
  }
  pls->poin(NSIZE, x, y, 46);

  //max
  for (int idx_orb = 0; idx_orb < NSIZE; idx_orb++)
  {
    y[idx_orb] = ob[idx_orb].maximum;
  }
  pls->col0(9); //blue
  pls->poin(NSIZE, x, y, 46);

  //min
  for (int idx_orb = 0; idx_orb < NSIZE; idx_orb++)
  {
    y[idx_orb] = ob[idx_orb].minimum;
  }
  pls->col0(9);
  pls->poin(NSIZE, x, y, 46);

  delete[] x;
  delete[] y;
  plotwindow->RenewPlot();
}
#endif
# usage : 
# make -f Makefile
# make -f Makefile clean
# wx-config --cxxflags
# wx-config --libs

# Note: 
# HAVE_PLPLOT_WX requires libplplotwxwidgets.a libplplotcxx.a


TEMPLATE = app
TARGET = wx_client
QT += core
QT -= gui
CONFIG += console
CONFIG += debug
CONFIG += static
lessThan(QT_MAJOR_VERSION, 5) {
QMAKE_CXXFLAGS += -std=c++0x
} else {
CONFIG += c++11
}

SRC7 =  ../../src/atms/RDR_DWELL/lib/rdr_data.cc

SRC10 = ../lib_netsockets/src/socket.cc
SRC11 = ../wx_lib/wx_calendar.cpp
SRC12 = ../wx_lib/wx_util.cpp
SRC13 = ../wx_lib/wx_plplotstream.cpp
SRC14 = wx_thread.cc
SRC_MAIN1 = wx_client.cc

unix {
 DEFINES += HAVE_PLPLOT 
 DEFINES += HAVE_PLPLOT_WX
 DEFINES += _FILE_OFFSET_BITS=64 
 DEFINES += __WXGTK__ 
 DEFINES += pthread

 dir_inc_atms = ../../src/atms/RDR_DWELL/lib
 dir_inc_lib_netsockets = ../lib_netsockets/src
 dir_inc_jansson = /data/data127/pvicente/install/jansson-2.9/include
 dir_lib_jansson = /data/data127/pvicente/install/jansson-2.9/lib
 dir_inc_hdf5 = /data/starfs1/libs/hdf5-1.8.7-linux-x86_64-static/include
 dir_lib_hdf5 = /data/starfs1/libs/hdf5-1.8.7-linux-x86_64-static/lib
 dir_inc_plplot = /data/data127/pvicente/install/plplot-5.11.1/include/plplot
 dir_lib_plplot = /data/data127/pvicente/install/plplot-5.11.1/lib
 dir_inc_wx = /data/data127/pvicente/install/wxwidgets-3.1.0/include/wx-3.1
 dir_inc_wx_setup = 
/data/data127/pvicente/install/wxwidgets-3.1.0/lib/wx/include/gtk2-unicode-static-3.1
 dir_lib_wx = /data/data127/pvicente/install/wxwidgets-3.1.0/lib


 INCLUDEPATH += $${dir_inc_plplot}
 INCLUDEPATH += $${dir_inc_wx}
 INCLUDEPATH += $${dir_inc_wx_setup}
 INCLUDEPATH += $${dir_inc_jansson}
 INCLUDEPATH += ../wx_lib
 INCLUDEPATH += $${dir_inc_lib_netsockets}
 INCLUDEPATH += $${dir_inc_atms}

 QMAKE_LIBDIR += $${dir_lib_jansson}
 LIBS += -ljansson 

 QMAKE_LIBDIR += $${dir_lib_plplot}
 LIBS += -lplplotwxwidgets 
 LIBS += -lplplotcxx
 LIBS += -lplplot
 LIBS += -lcsirocsa
 LIBS += -lqsastime

 QMAKE_LIBDIR += $${dir_lib_wx}
 LIBS += -lwx_gtk2u_xrc-3.1
 LIBS += -lwx_gtk2u_qa-3.1
 LIBS += -lwx_baseu_net-3.1
 LIBS += -lwx_gtk2u_html-3.1
 LIBS += -lwx_gtk2u_adv-3.1
 LIBS += -lwx_gtk2u_core-3.1
 LIBS += -lwx_baseu-3.1
 LIBS += -pthread
 LIBS += -lX11
 LIBS += -lXxf86vm
 LIBS += -lSM
 LIBS += -lgtk-x11-2.0
 LIBS += -lgdk-x11-2.0
 LIBS += -latk-1.0
 LIBS += -lgio-2.0
 LIBS += -lpangoft2-1.0
 LIBS += -lpangocairo-1.0
 LIBS += -lgdk_pixbuf-2.0
 LIBS += -lcairo
 LIBS += -lpango-1.0
 LIBS += -lfreetype
 LIBS += -lfontconfig
 LIBS += -lgobject-2.0
 LIBS += -lgmodule-2.0
 LIBS += -lgthread-2.0
 LIBS += -lrt
 LIBS += -lglib-2.0
 LIBS += -lpng
 LIBS += -ljpeg
 LIBS += -lexpat
 LIBS += -lwxregexu-3.1
 LIBS += -lwxtiff-3.1
 LIBS += -lz -ldl
 LIBS += -lm
 LIBS += -llzma 
 
 HEADERS += 
 SOURCES +=  $${SRC7} $${SRC10} $${SRC11} $${SRC12} $${SRC13} $${SRC14}  
$${SRC_MAIN1}
}




------------------------------------------------------------------------------
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today.http://sdm.link/xeonphi
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to