Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » U++ Library support » U++ Library : Other (not classified elsewhere) » Running a CtrlLib application "headless"
Running a CtrlLib application "headless" [message #37109] Fri, 24 August 2012 20:30 Go to next message
nixnixnix is currently offline  nixnixnix
Messages: 415
Registered: February 2007
Location: Kelowna, British Columbia
Senior Member
Hi,

I have a rather large and complex GUI application. This application can run in batch mode and I have an academic user who wants to run it headless (no GUI) on a cloud.

Is there a simple way to recompile a CtrlLib application to run without it's GUI or is the only way for me to use preprocessor directives to cut out all the GUI code?

I imagine that the first thing is to not use the Run command.

Does anyone have experience of doing something similar?

Nick



Re: Running a CtrlLib application "headless" [message #37110 is a reply to message #37109] Sat, 25 August 2012 09:37 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 12105
Registered: November 2005
Ultimate Member
nixnixnix wrote on Fri, 24 August 2012 14:30

Hi,

I have a rather large and complex GUI application. This application can run in batch mode and I have an academic user who wants to run it headless (no GUI) on a cloud.

Is there a simple way to recompile a CtrlLib application to run without it's GUI or is the only way for me to use preprocessor directives to cut out all the GUI code?



Yes. You have to use Rainbow to supply "Nil" GUI, which can be represented by "Skeleton" package.

As example, see uppweb; it runs completely headless on our web server but it still includes "ide" package (as quick and dirty fix to include documentation).

Mirek
Re: Running a CtrlLib application "headless" [message #37119 is a reply to message #37110] Sun, 26 August 2012 21:58 Go to previous messageGo to next message
nixnixnix is currently offline  nixnixnix
Messages: 415
Registered: February 2007
Location: Kelowna, British Columbia
Senior Member
Thanks Mirek,

That sounds perfect. I can't find uppweb in the examples or in any of upp. I have version 5202 installed but I see from release notes that it has been around for a while. I just can't find it. I've looked for uppbox as well and still nothing.

Nick
Re: Running a CtrlLib application "headless" [message #37120 is a reply to message #37119] Sun, 26 August 2012 22:17 Go to previous messageGo to next message
koldo is currently offline  koldo
Messages: 3033
Registered: August 2008
Ultimate Member
Hello Nick

You can find it easily for example in Google here:

http://code.google.com/p/upp-mirror/source/browse/#svn%2Ftru nk%2Fuppbox%2Fuppweb


Best regards
Iñaki
Re: Running a CtrlLib application "headless" [message #37121 is a reply to message #37120] Sun, 26 August 2012 22:34 Go to previous messageGo to next message
nixnixnix is currently offline  nixnixnix
Messages: 415
Registered: February 2007
Location: Kelowna, British Columbia
Senior Member
Ah I didn't realise there was all this other code not included in the standard download.

I am trying to download using tortoiseSVN and the address

http://upp-mirror.googlecode.com/svn/trunk/ upp-mirror-read-only

but I get the error that it doesn't exist. I've tried with and without the space.

Cheers,

Nick
Re: Running a CtrlLib application "headless" [message #37122 is a reply to message #37121] Sun, 26 August 2012 23:40 Go to previous messageGo to next message
chickenk is currently offline  chickenk
Messages: 168
Registered: May 2007
Location: Grenoble, France
Experienced Member
try

http://upp-mirror.googlecode.com/svn/trunk/uppbox

Lionel
Re: Running a CtrlLib application "headless" [message #37123 is a reply to message #37122] Mon, 27 August 2012 04:41 Go to previous messageGo to next message
nixnixnix is currently offline  nixnixnix
Messages: 415
Registered: February 2007
Location: Kelowna, British Columbia
Senior Member
Thanks Lionel. Thanks Mirek. Thanks Koldo.

Very nice that we can take GUI apps and easily convert them to headless batch mode Smile



[Updated on: Mon, 27 August 2012 04:42]

Report message to a moderator

Re: Running a CtrlLib application "headless" [message #37587 is a reply to message #37123] Mon, 22 October 2012 06:16 Go to previous messageGo to next message
nixnixnix is currently offline  nixnixnix
Messages: 415
Registered: February 2007
Location: Kelowna, British Columbia
Senior Member
Hi,

I managed to get it to build under Windows but under Linux I can compile but not link. I have copied the uppbox files to /home/nick/upp/uppbox/ but I suspect I need to do something to tell theIDE to use them

I get the following link errors:

----- plugin/bz2 ( MT OCOE PRO AC CLIENT_MIT HEADLESS RAINBOW SKELETON GCC SHARED LINUX POSIX ) (22 / 23)
----- OpenWind ( MT OCOE PRO AC CLIENT_MIT HEADLESS RAINBOW SKELETON MAIN GCC SHARED LINUX POSIX ) (23 / 23)
Linking...
/home/nick/.upp/_out/trunk/CtrlLib/GCC4.Ac.Client_Mit.Headless.Mt.Ocoe.Pro.Rainbow.Shared.Skeleton/CtrlLib.a(ChGtk0.o): In function `Upp::gtk__parent()':
ChGtk0.cpp:(.text._ZN3Upp11gtk__parentEv+0x11): undefined reference to `gtk_window_new'
ChGtk0.cpp:(.text._ZN3Upp11gtk__parentEv+0x20): undefined reference to `gtk_widget_realize'
/home/nick/.upp/_out/trunk/CtrlLib/GCC4.Ac.Client_Mit.Headless.Mt.Ocoe.Pro.Rainbow.Shared.Skeleton/CtrlLib.a(ChGtk0.o): In function `Upp::Setup(_GtkWidget*)':
ChGtk0.cpp:(.text._ZN3Upp5SetupEP10_GtkWidget+0x12): undefined reference to `gtk_fixed_new'
ChGtk0.cpp:(.text._ZN3Upp5SetupEP10_GtkWidget+0x21): undefined reference to `gtk_container_get_type'
ChGtk0.cpp:(.text._ZN3Upp5SetupEP10_GtkWidget+0x34): undefined reference to `g_type_check_instance_cast'
ChGtk0.cpp:(.text._ZN3Upp5SetupEP10_GtkWidget+0x3f): undefined reference to `gtk_container_add'
ChGtk0.cpp:(.text._ZN3Upp5SetupEP10_GtkWidget+0x4b): undefined reference to `gtk_widget_realize'
ChGtk0.cpp:(.text._ZN3Upp5SetupEP10_GtkWidget+0x50): undefined reference to `gtk_fixed_get_type'
ChGtk0.cpp:(.text._ZN3Upp5SetupEP10_GtkWidget+0x5f): undefined reference to `g_type_check_instance_cast'
ChGtk0.cpp:(.text._ZN3Upp5SetupEP10_GtkWidget+0x6e): undefined reference to `gtk_fixed_put'
ChGtk0.cpp:(.text._ZN3Upp5SetupEP10_GtkWidget+0x76): undefined reference to `gtk_widget_realize'
ChGtk0.cpp:(.text._ZN3Upp5SetupEP10_GtkWidget+0x7e): undefined reference to `gtk_widget_show'
/home/nick/.upp/_out/trunk/CtrlLib/GCC4.Ac.Client_Mit.Headless.Mt.Ocoe.Pro.Rainbow.Shared.Skeleton/CtrlLib.a(ChGtk0.o): In function `Upp::GtkInt(_GtkWidget*, char const*)':
ChGtk0.cpp:(.text._ZN3Upp6GtkIntEP10_GtkWidgetPKc+0x16): undefined reference to `gtk_widget_style_get'
/home/nick/.upp/_out/trunk/CtrlLib/GCC4.Ac.Client_Mit.Headless.Mt.Ocoe.Pro.Rainbow.Shared.Skeleton/CtrlLib.a(ChGtk0.o): In function `Upp::ChGtkColor(int, _GtkWidget*)':
ChGtk0.cpp:(.text._ZN3Upp10ChGtkColorEiP10_GtkWidget+0xe): undefined reference to `gtk_widget_get_style'
/home/nick/.upp/_out/trunk/CtrlLib/GCC4.Ac.Client_Mit.Headless.Mt.Ocoe.Pro.Rainbow.Shared.Skeleton/CtrlLib.a(ChGtk0.o): In function `Upp::GtkStyleInt(char const*)':
ChGtk0.cpp:(.text._ZN3Upp11GtkStyleIntEPKc+0x11): undefined reference to `gtk_settings_get_default'
ChGtk0.cpp:(.text._ZN3Upp11GtkStyleIntEPKc+0x25): undefined reference to `g_object_get'
/home/nick/.upp/_out/trunk/CtrlLib/GCC4.Ac.Client_Mit.Headless.Mt.Ocoe.Pro.Rainbow.Shared.Skeleton/CtrlLib.a(ChGtk0.o): In function `
There were errors. (0:02.09)


Re: Running a CtrlLib application "headless" [message #37592 is a reply to message #37587] Mon, 22 October 2012 09:23 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 12105
Registered: November 2005
Ultimate Member
nixnixnix wrote on Mon, 22 October 2012 00:16

Hi,

I managed to get it to build under Windows but under Linux I can compile but not link. I have copied the uppbox files to /home/nick/upp/uppbox/ but I suspect I need to do something to tell theIDE to use them

I get the following link errors:

----- plugin/bz2 ( MT OCOE PRO AC CLIENT_MIT HEADLESS RAINBOW SKELETON GCC SHARED LINUX POSIX ) (22 / 23)
----- OpenWind ( MT OCOE PRO AC CLIENT_MIT HEADLESS RAINBOW SKELETON MAIN GCC SHARED LINUX POSIX ) (23 / 23)
Linking...
/home/nick/.upp/_out/trunk/CtrlLib/GCC4.Ac.Client_Mit.Headless.Mt.Ocoe.Pro.Rainbow.Shared.Skeleton/CtrlLib.a(ChGtk0.o): In function `Upp::gtk__parent()':
ChGtk0.cpp:(.text._ZN3Upp11gtk__parentEv+0x11): undefined reference to `gtk_window_new'
ChGtk0.cpp:(.text._ZN3Upp11gtk__parentEv+0x20): undefined reference to `gtk_widget_realize'
/home/nick/.upp/_out/trunk/CtrlLib/GCC4.Ac.Client_Mit.Headless.Mt.Ocoe.Pro.Rainbow.Shared.Skeleton/CtrlLib.a(ChGtk0.o): In function `Upp::Setup(_GtkWidget*)':
ChGtk0.cpp:(.text._ZN3Upp5SetupEP10_GtkWidget+0x12): undefined reference to `gtk_fixed_new'
ChGtk0.cpp:(.text._ZN3Upp5SetupEP10_GtkWidget+0x21): undefined reference to `gtk_container_get_type'
ChGtk0.cpp:(.text._ZN3Upp5SetupEP10_GtkWidget+0x34): undefined reference to `g_type_check_instance_cast'
ChGtk0.cpp:(.text._ZN3Upp5SetupEP10_GtkWidget+0x3f): undefined reference to `gtk_container_add'
ChGtk0.cpp:(.text._ZN3Upp5SetupEP10_GtkWidget+0x4b): undefined reference to `gtk_widget_realize'
ChGtk0.cpp:(.text._ZN3Upp5SetupEP10_GtkWidget+0x50): undefined reference to `gtk_fixed_get_type'
ChGtk0.cpp:(.text._ZN3Upp5SetupEP10_GtkWidget+0x5f): undefined reference to `g_type_check_instance_cast'
ChGtk0.cpp:(.text._ZN3Upp5SetupEP10_GtkWidget+0x6e): undefined reference to `gtk_fixed_put'
ChGtk0.cpp:(.text._ZN3Upp5SetupEP10_GtkWidget+0x76): undefined reference to `gtk_widget_realize'
ChGtk0.cpp:(.text._ZN3Upp5SetupEP10_GtkWidget+0x7e): undefined reference to `gtk_widget_show'
/home/nick/.upp/_out/trunk/CtrlLib/GCC4.Ac.Client_Mit.Headless.Mt.Ocoe.Pro.Rainbow.Shared.Skeleton/CtrlLib.a(ChGtk0.o): In function `Upp::GtkInt(_GtkWidget*, char const*)':
ChGtk0.cpp:(.text._ZN3Upp6GtkIntEP10_GtkWidgetPKc+0x16): undefined reference to `gtk_widget_style_get'
/home/nick/.upp/_out/trunk/CtrlLib/GCC4.Ac.Client_Mit.Headless.Mt.Ocoe.Pro.Rainbow.Shared.Skeleton/CtrlLib.a(ChGtk0.o): In function `Upp::ChGtkColor(int, _GtkWidget*)':
ChGtk0.cpp:(.text._ZN3Upp10ChGtkColorEiP10_GtkWidget+0xe): undefined reference to `gtk_widget_get_style'
/home/nick/.upp/_out/trunk/CtrlLib/GCC4.Ac.Client_Mit.Headless.Mt.Ocoe.Pro.Rainbow.Shared.Skeleton/CtrlLib.a(ChGtk0.o): In function `Upp::GtkStyleInt(char const*)':
ChGtk0.cpp:(.text._ZN3Upp11GtkStyleIntEPKc+0x11): undefined reference to `gtk_settings_get_default'
ChGtk0.cpp:(.text._ZN3Upp11GtkStyleIntEPKc+0x25): undefined reference to `g_object_get'
/home/nick/.upp/_out/trunk/CtrlLib/GCC4.Ac.Client_Mit.Headless.Mt.Ocoe.Pro.Rainbow.Shared.Skeleton/CtrlLib.a(ChGtk0.o): In function `
There were errors. (0:02.09)





Ty adding NOGTK flag.

(Although, in fact, it should not be needed... - I am pretty sure that uppbox/uppweb compiles without it in linux)
Re: Running a CtrlLib application "headless" [message #38547 is a reply to message #37592] Sun, 23 December 2012 02:07 Go to previous messageGo to next message
nixnixnix is currently offline  nixnixnix
Messages: 415
Registered: February 2007
Location: Kelowna, British Columbia
Senior Member
Hi Mirek,

When I try I get the following or similar error:

----- CtrlLib ( MT OCOE PRO AC CLIENT_MIT HEADLESS RAINBOW SKELETON GCC SHARED LINUX POSIX ) (1 / 26)
LabelBase.cpp
Button.cpp
Switch.cpp
EditField.cpp
Text.cpp
LineEdit.cpp
DocEdit.cpp
ScrollBar.cpp
HeaderCtrl.cpp
In file included from /home/nick/upp/uppsrc/CtrlCore/CtrlCore.h:20:0,
                 from /home/nick/upp/uppsrc/CtrlLib/CtrlLib.h:4,
                 from /home/nick/upp/uppsrc/CtrlLib/LineEdit.cpp:1:
/home/nick/upp/rainbow/Skeleton/Skeleton.h:75:14: error: cannot declare field ‘Upp::ImageDraw::alpha’ to be of abstract type ‘Upp::SystemDraw’
/home/nick/upp/rainbow/Skeleton/Skeleton.h:5:7: note:   because the following virtual functions are pure within ‘Upp::SystemDraw’:
/home/nick/upp/uppsrc/Draw/Draw.h:445:15: note:  virtual void Upp::Draw::DrawImageOp(int, int, int, int, const Upp::Image&, const Rect&, Upp::Color)
/home/nick/upp/uppsrc/CtrlLib/LineEdit.cpp: In member function ‘virtual void Upp::LineEdit::LeftDrag(Upp::Point, Upp::dword)’:
/home/nick/upp/uppsrc/CtrlLib/LineEdit.cpp:858:13: error: cannot declare variable ‘iw’ to be of abstract type ‘Upp::ImageDraw’
/home/nick/upp/rainbow/Skeleton/Skeleton.h:74:7: note:   because the following virtual functions are pure within ‘Upp::ImageDraw’:
/home/nick/upp/uppsrc/Draw/Draw.h:445:15: note:  virtual void Upp::Draw::DrawImageOp(int, int, int, int, const Upp::Image&, const Rect&, Upp::Color)
ArrayCtrl.cpp


repeated many times. Are my flags wrong? I have copied code across from upp/rainbow so that I now have upp/uppsrc, upp/bazaar and upp/rainbow. Are there more packages that I need please?

Nick

[Updated on: Sun, 23 December 2012 02:08]

Report message to a moderator

Re: Running a CtrlLib application "headless" [message #38548 is a reply to message #38547] Sun, 23 December 2012 09:52 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 12105
Registered: November 2005
Ultimate Member
nixnixnix wrote on Sat, 22 December 2012 20:07

Hi Mirek,

When I try I get the following or similar error:

----- CtrlLib ( MT OCOE PRO AC CLIENT_MIT HEADLESS RAINBOW SKELETON GCC SHARED LINUX POSIX ) (1 / 26)
LabelBase.cpp
Button.cpp
Switch.cpp
EditField.cpp
Text.cpp
LineEdit.cpp
DocEdit.cpp
ScrollBar.cpp
HeaderCtrl.cpp
In file included from /home/nick/upp/uppsrc/CtrlCore/CtrlCore.h:20:0,
                 from /home/nick/upp/uppsrc/CtrlLib/CtrlLib.h:4,
                 from /home/nick/upp/uppsrc/CtrlLib/LineEdit.cpp:1:
/home/nick/upp/rainbow/Skeleton/Skeleton.h:75:14: error: cannot declare field ‘Upp::ImageDraw::alpha’ to be of abstract type ‘Upp::SystemDraw’
/home/nick/upp/rainbow/Skeleton/Skeleton.h:5:7: note:   because the following virtual functions are pure within ‘Upp::SystemDraw’:
/home/nick/upp/uppsrc/Draw/Draw.h:445:15: note:  virtual void Upp::Draw::DrawImageOp(int, int, int, int, const Upp::Image&, const Rect&, Upp::Color)
/home/nick/upp/uppsrc/CtrlLib/LineEdit.cpp: In member function ‘virtual void Upp::LineEdit::LeftDrag(Upp::Point, Upp::dword)’:
/home/nick/upp/uppsrc/CtrlLib/LineEdit.cpp:858:13: error: cannot declare variable ‘iw’ to be of abstract type ‘Upp::ImageDraw’
/home/nick/upp/rainbow/Skeleton/Skeleton.h:74:7: note:   because the following virtual functions are pure within ‘Upp::ImageDraw’:
/home/nick/upp/uppsrc/Draw/Draw.h:445:15: note:  virtual void Upp::Draw::DrawImageOp(int, int, int, int, const Upp::Image&, const Rect&, Upp::Color)
ArrayCtrl.cpp


repeated many times. Are my flags wrong? I have copied code across from upp/rainbow so that I now have upp/uppsrc, upp/bazaar and upp/rainbow. Are there more packages that I need please?

Nick



Now this rather looks like you have hit a period of unstability - I am now working on new rainbow backends, adding or changing stuff here and there. Just yesterday I have found that skeleton was broken - uppweb did not compiled. Today, it should be fixed in svn again.

Mirek
Re: Running a CtrlLib application "headless" [message #38601 is a reply to message #38548] Thu, 27 December 2012 05:25 Go to previous messageGo to next message
nixnixnix is currently offline  nixnixnix
Messages: 415
Registered: February 2007
Location: Kelowna, British Columbia
Senior Member
Hi Mirek,

Sorry for the delay in getting back to you but I broke my Linux VM and had to set everything up again.

I am back to being able to build and run all variants of my software in the Ubuntu 64 based version of Mint Linux apart from the headless build which gives me the following link errors

----- OpenWind ( MT OCOE PRO AC CLIENT_MIT HEADLESS RAINBOW SKELETON NOGTK MAIN GCC SHARED LINUX POSIX ) (26 / 26)
Linking...
/home/nick/.upp/_out/trunk/CtrlCore/GCC.Ac.Client_Mit.Headless.Mt.Nogtk.Ocoe.Pro.Rainbow.Shared.Skeleton/CtrlCore.a(DrawX11.o): In function `Upp::BackDraw::Destroy()':
DrawX11.cpp:(.text._ZN3Upp8BackDraw7DestroyEv+0x1b): undefined reference to `XftDrawDestroy'
/home/nick/.upp/_out/trunk/CtrlCore/GCC.Ac.Client_Mit.Headless.Mt.Nogtk.Ocoe.Pro.Rainbow.Shared.Skeleton/CtrlCore.a(DrawX11.o): In function `Upp::SetClip(_XGC*, _XftDraw*, Upp::Vector<Upp::Rect_<int> > const&)':
DrawX11.cpp:(.text._ZN3Upp7SetClipEP4_XGCP8_XftDrawRKNS_6VectorINS_5Rect_IiEEEE+0x96): undefined reference to `XftDrawSetClipRectangles'
/home/nick/.upp/_out/trunk/CtrlCore/GCC.Ac.Client_Mit.Headless.Mt.Nogtk.Ocoe.Pro.Rainbow.Shared.Skeleton/CtrlCore.a(DrawX11.o): In function `Upp::BackDraw::Create(Upp::SystemDraw&, int, int)':
DrawX11.cpp:(.text._ZN3Upp8BackDraw6CreateERNS_10SystemDrawEii+0x9d): undefined reference to `XftDrawCreate'
/home/nick/.upp/_out/trunk/CtrlCore/GCC.Ac.Client_Mit.Headless.Mt.Nogtk.Ocoe.Pro.Rainbow.Shared.Skeleton/CtrlCore.a(DrawTextX11.o): In function `Upp::CreateXftFont(Upp::Font, int)':
DrawTextX11.cpp:(.text._ZN3Upp13CreateXftFontENS_4FontEi+0x15b): undefined reference to `XftFontMatch'
DrawTextX11.cpp:(.text._ZN3Upp13CreateXftFontENS_4FontEi+0x27a): undefined reference to `XftFontOpenPattern'
/home/nick/.upp/_out/trunk/CtrlCore/GCC.Ac.Client_Mit.Headless.Mt.Nogtk.Ocoe.Pro.Rainbow.Shared.Skeleton/CtrlCore.a(DrawTextX11.o): In function `Upp::GetXftFont(Upp::XftEntry*, Upp::Font, int)':
DrawTextX11.cpp:(.text._ZN3Upp10GetXftFontEPNS_8XftEntryENS_4FontEi+0x1c2): undefined reference to `XftFontClose'
/home/nick/.upp/_out/trunk/CtrlCore/GCC.Ac.Client_Mit.Headless.Mt.Nogtk.Ocoe.Pro.Rainbow.Shared.Skeleton/CtrlCore.a(DrawTextX11.o): In function `Upp::SystemDraw::DrawTextOp(int, int, int, unsigned short const*, U
	pp::Font, Upp::Color, int, int const*)':
DrawTextX11.cpp:(.text._ZN3Upp10SystemDraw10DrawTextOpEiiiPKtNS_4FontENS_5ColorEiPKi+0x391): undefined reference to `XftDrawString16'
DrawTextX11.cpp:(.text._ZN3Upp10SystemDraw10DrawTextOpEiiiPKtNS_4FontENS_5ColorEiPKi+0x564): undefined reference to `XftDrawCharSpec'
DrawTextX11.cpp:(.text._ZN3Upp10SystemDraw10DrawTextOpEiiiPKtNS_4FontENS_5ColorEiPKi+0x5a2): undefined reference to `XftDrawString16'
/home/nick/.upp/_out/trunk/CtrlCore/GCC.Ac.Client_Mit.Headless.Mt.Nogtk.Ocoe.Pro.Rainbow.Shared.Skeleton/CtrlCore.a(DrawTextX11.o): In function `Upp::XftGetGlyphInfoSys(Upp::Font, int)':
DrawTextX11.cpp:(.text._ZN3Upp18XftGetGlyphInfoSysENS_4FontEi+0x2a): undefined reference to `XftTextExtents16'
/home/nick/.upp/_out/trunk/CtrlCore/GCC.Ac.Client_Mit.Headless.Mt.Nogtk.Ocoe.Pro.Rainbow.Shared.Skeleton/CtrlCore.a(ImageX11.o): In function `Upp::SetSurface(Upp::SystemDraw&, int, int, int, int, Upp::RGBA const*
	)':
ImageX11.cpp:(.text._ZN3Upp10SetSurfaceERNS_10SystemDrawEiiiiPKNS_4RGBAE+0x55): undefined reference to `XRenderFindStandardFormat'
ImageX11.cpp:(.text._ZN3Upp10SetSurfaceERNS_10SystemDrawEiiiiPKNS_4RGBAE+0x6c): undefined reference to `XRenderCreatePicture'
ImageX11.cpp:(.text._ZN3Upp10SetSurfaceERNS_10SystemDrawEiiiiPKNS_4RGBAE+0x160): undefined reference to `XftDrawPicture'
ImageX11.cpp:(.text._ZN3Upp10SetSurfaceERNS_10SystemDrawEiiiiPKNS_4RGBAE+0x1aa): undefined reference to `XRenderComposite'
ImageX11.cpp:(.text._ZN3Upp10SetSurfaceERNS_10SystemDrawEiiiiPKNS_4RGBAE+0x1bb): undefined reference to `XRenderFreePicture'
/home/nick/.upp/_out/trunk/CtrlCore/GCC.Ac.Client_Mit.Headless.Mt.Nogtk.Ocoe.Pro.Rainbow.Shared.Skeleton/CtrlCore.a(ImageX11.o): In function `Upp::ImageSysData::~ImageSysData()':
ImageX11.cpp:(.text._ZN3Upp12ImageSysDataD2Ev+0x48): undefined reference to `XRenderFreePicture'
ImageX11.cpp:(.text._ZN3Upp12ImageSysDataD2Ev+0x56): undefined reference to `XRenderFreePicture'
/home/nick/.upp/_out/trunk/CtrlCore/GCC.Ac.Client_Mit.Headless.Mt.Nogtk.Ocoe.Pro.Rainbow.Shared.Skeleton/CtrlCore.a(ImageX11.o): In function `Upp::SystemDraw::CursorX11(Upp::Image const&)':
ImageX11.cpp:(.text._ZN3Upp10SystemDraw9CursorX11ERKNS_5ImageE+0x7d): undefined reference to `XRenderFindStandardFormat'
ImageX11.cpp:(.text._ZN3Upp10SystemDraw9CursorX11ERKNS_5ImageE+0x94): undefined reference to `XRenderCreatePicture'
ImageX11.cpp:(.text._ZN3Upp10SystemDraw9CursorX11ERKNS_5ImageE+0x1dc): undefined reference to `XRenderCreateCursor'
ImageX11.cpp:(.text._ZN3Upp10SystemDraw9CursorX11ERKNS_5ImageE+0x1ee): undefined reference to `XRenderFreePicture'
/home/nick/.upp/_out/trunk/CtrlCore/GCC.Ac.Client_Mit.Headless.Mt.Nogtk.Ocoe.Pro.Rainbow.Shared.Skeleton/CtrlCore.a(ImageX11.o): In function `Upp::ImageSysData::Paint(Upp::SystemDraw&, int, int, Upp::Rect_<int> c
	onst&, Upp::Color)':
ImageX11.cpp:(.text._ZN3Upp12ImageSysData5PaintERNS_10SystemDrawEiiRKNS_5Rect_IiEENS_5ColorE+0x1e5): undefined reference to `XRenderFindStandardFormat'
ImageX11.cpp:(.text._ZN3Upp12ImageSysData5PaintERNS_10SystemDrawEiiRKNS_5Rect_IiEENS_5ColorE+0x1fc): undefined reference to `XRenderCreatePicture'
ImageX11.cpp:(.text._ZN3Upp12ImageSysData5PaintERNS_10SystemDrawEiiRKNS_5Rect_IiEENS_5ColorE+0x342): undefined reference to `XftDrawPicture'
ImageX11.cpp:(.text._ZN3Upp12ImageSysData5PaintERNS_10SystemDrawEiiRKNS_5Rect_IiEENS_5ColorE+0x392): undefined reference to `XRenderComposite'
ImageX11.cpp:(.text._ZN3Upp12ImageSysData5PaintERNS_10SystemDrawEiiRKNS_5Rect_IiEENS_5ColorE+0x3df): undefined reference to `XRenderFindStandardFormat'
ImageX11.cpp:(.text._ZN3Upp12ImageSysData5PaintERNS_10SystemDrawEiiRKNS_5Rect_IiEENS_5ColorE+0x3f8): undefined reference to `XRenderCreatePicture'
ImageX11.cpp:(.text._ZN3Upp12ImageSysData5PaintERNS_10SystemDrawEiiRKNS_5Rect_IiEENS_5ColorE+0x558): undefined reference to `XftDrawPicture'
ImageX11.cpp:(.text._ZN3Upp12ImageSysData5PaintERNS_10SystemDrawEiiRKNS_5Rect_IiEENS_5ColorE+0x5ac): undefined reference to `XRenderFreePicture'
ImageX11.cpp:(.text._ZN3Upp12ImageSysData5PaintERNS_10SystemDrawEiiRKNS_5Rect_IiEENS_5ColorE+0x5f5): undefined reference to `XRenderFindStandardFormat'
ImageX11.cpp:(.text._ZN3Upp12ImageSysData5PaintERNS_10SystemDrawEiiRKNS_5Rect_IiEENS_5ColorE+0x625): undefined reference to `XRenderCreatePicture'
ImageX11.cpp:(.text._ZN3Upp12ImageSysData5PaintERNS_10SystemDrawEiiRKNS_5Rect_IiEENS_5ColorE+0x6ca): undefined reference to `XRenderFillRectangle'
/home/nick/.upp/_out/trunk/CtrlCore/GCC.Ac.Client_Mit.Headless.Mt.Nogtk.Ocoe.Pro.Rainbow.Shared.Skeleton/CtrlCore.a(ImageX11.o): In function `Upp::ImageDraw::~ImageDraw()':
ImageX11.cpp:(.text._ZN3Upp9ImageDrawD2Ev+0x17): undefined reference to `XftDrawDestroy'
ImageX11.cpp:(.text._ZN3Upp9ImageDrawD2Ev+0x43): undefined reference to `XftDrawDestroy'
/home/nick/.upp/_out/trunk/CtrlCore/GCC.Ac.Client_Mit.Headless.Mt.Nogtk.Ocoe.Pro.Rainbow.Shared.Skeleton/CtrlCore.a(ImageX11.o): In function `Upp::ImageDraw::Init()':
ImageX11.cpp:(.text._ZN3Upp9ImageDraw4InitEv+0x8e): undefined reference to `XftDrawCreate'
ImageX11.cpp:(.text._ZN3Upp9ImageDraw4InitEv+0x120): undefined reference to `XftDrawCreate'
/home/nick/.upp/_out/trunk/CtrlCore/GCC.Ac.Client_Mit.Headless.Mt.Nogtk.Ocoe.Pro.Rainbow.Shared.Skeleton/CtrlCore.a(X11Wnd.o): In function `Upp::Ctrl::DoPaint(Upp::Vector<Upp::Rect_<int> > const&)':
X11Wnd.cpp:(.text._ZN3Upp4Ctrl7DoPaintERKNS_6VectorINS_5Rect_IiEEEE+0x75): undefined reference to `XftDrawCreate'
X11Wnd.cpp:(.text._ZN3Upp4Ctrl7DoPaintERKNS_6VectorINS_5Rect_IiEEEE+0xc9): undefined reference to `XftDrawDestroy'
/home/nick/.upp/_out/trunk/CtrlCore/GCC.Ac.Client_Mit.Headless.Mt.Nogtk.Ocoe.Pro.Rainbow.Shared.Skeleton/CtrlCore.a(X11Wnd.o): In function `Upp::ViewDraw::ViewDraw(Upp::Ctrl*)':
X11Wnd.cpp:(.text._ZN3Upp8ViewDrawC2EPNS_4CtrlE+0xff): undefined reference to `XftDrawCreate'
collect2: error: ld returned 1 exit status

There were errors. (0:02.49)


It's entirely possible that I don't really understand what Skeleton is designed to do. I am trying to use it to take a GUI app and enable it to run in batch mode on cloud nodes which do not have video cards merely by replacing GUI_APP_MAIN with CONSOLE_APP_MAIN.

Can I still call TopWindow constructors and member functions in the code? Does Skeleton make these harmless or do I need to do more to make my code Skeleton friendly?

I took a look at uppweb but I don't really get what it is doing. It is very different to my starting point.

Cheers,

Nick

Re: Running a CtrlLib application "headless" [message #38602 is a reply to message #38601] Thu, 27 December 2012 10:24 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 12105
Registered: November 2005
Ultimate Member
To make it work:

Make sure you have rainbow nest before uppsrc in assembly.

Add "SKELETON" to the main package config.

Add Skeleton package to the project.

"rainbow" is compile time 'interface' that makes possible to replace CtrlCore host platform specific code with something else. Skeleton is this 'something else' that is empty.

'rainbow' works by simple hack: CtrlCore includes "<platform.h>" file. In uppsrc, this file is empty, but in rainbow nest, it contains some defines that change CtrlCore (see rainbow/platform.h and CtrlCore for details).

Mirek
Re: Running a CtrlLib application "headless" [message #38611 is a reply to message #38602] Fri, 28 December 2012 23:36 Go to previous message
nixnixnix is currently offline  nixnixnix
Messages: 415
Registered: February 2007
Location: Kelowna, British Columbia
Senior Member
Thanks Mirek,

Much closer now. Is it possible that this function doesn't get intercepted by Skeleton?

----- OpenWind ( MT OCOE PRO AC CLIENT_MIT HEADLESS RAINBOW SKELETON NOGTK MAIN GCC SHARED LINUX POSIX ) (26 / 26)
Linking...
/home/nick/.upp/_out/trunk/GridCtrl/GCC.Ac.Client_Mit.Headless.Mt.Nogtk.Ocoe.Pro.Rainbow.Shared.Skeleton/GridCtrl.a(GridCtrl.o): In function `Upp::GridCtrl::SyncPopup()':
GridCtrl.cpp:(.text._ZN3Upp8GridCtrl9SyncPopupEv+0x2cd): undefined reference to `Upp::GetScreenSize()'
collect2: error: ld returned 1 exit status

There were errors. (0:02.25)


I think we're close - exciting! Smile

Nick

Previous Topic: Is there any way to return all children of a ParentCtrl?
Next Topic: Feature request: Add LZMA SDK to U++
Goto Forum:
  


Current Time: Wed Nov 20 02:36:28 CET 2019

Total time taken to generate the page: 0.02131 seconds