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 » Community » Newbie corner » Static Binary
Static Binary [message #37367] Fri, 28 September 2012 00:01 Go to next message
jheblack is currently offline  jheblack
Messages: 12
Registered: September 2012
Promising Member
What Non-BSD licensed libraries are compiled into an U++ static binary?
Re: Static Binary [message #37370 is a reply to message #37367] Fri, 28 September 2012 08:21 Go to previous messageGo to next message
koldo is currently offline  koldo
Messages: 3359
Registered: August 2008
Senior Veteran
Hello jheblack

AFAIK all libraries compiled into an U++ exe have BSD compatible licenses.

In some cases there are LGPL libraries like SDL. Those are not used in main U++ packages like Core or CtrlLib and are included as dynamic libraries as DLL in Windows.


Best regards
Iñaki
Re: Static Binary [message #37371 is a reply to message #37370] Fri, 28 September 2012 09:19 Go to previous messageGo to next message
jheblack is currently offline  jheblack
Messages: 12
Registered: September 2012
Promising Member
Well if that's right then the U++ framework is like FLTK (http://www.fltk.org/) -- "modular enough to be statically linked" -- No?

Re: Static Binary [message #37372 is a reply to message #37371] Fri, 28 September 2012 09:31 Go to previous messageGo to next message
jheblack is currently offline  jheblack
Messages: 12
Registered: September 2012
Promising Member
@koldo, I'm fairly skeptical (by the way) since like -- it seems that 'a lot' of these failed (OR WHATEVER) GUI Toolkits never advertise the fact that they are full of GPL/LGPL dependencies that are not to be 'statically linked' OR WHATEVER.... If I had to deploy "dynamically linked libraries" along with a 'static exe/so' -- that's more of a pain than releasing a JAVA app Dependant on JUST ONE JRE download/install. O.K.?
Re: Static Binary [message #37375 is a reply to message #37372] Fri, 28 September 2012 22:06 Go to previous messageGo to next message
koldo is currently offline  koldo
Messages: 3359
Registered: August 2008
Senior Veteran
Hello jheblack

In the last five years I have deployed stand alone U++ exes to different users, no programming geeks, inside and outside my company, with installers or just naked executables.

No need of DLLs, believe me Smile.


Best regards
Iñaki
Re: Static Binary [message #37376 is a reply to message #37372] Fri, 28 September 2012 22:48 Go to previous messageGo to next message
nlneilson is currently offline  nlneilson
Messages: 644
Registered: January 2010
Location: U.S. California. Mojave &...
Contributor
jheblack wrote on Fri, 28 September 2012 00:31

-- that's more of a pain than releasing a JAVA app Dependant on JUST ONE JRE download/install. O.K.?


I do programming in Java by necessity and C++ in U++ for power, speed, memory, threads, openGL v jogl 32/64, etc..

Read the java acceptance/again.

Java can be 'decompiled' too easily.

It is just a matter of choice.

Re: Static Binary [message #37377 is a reply to message #37376] Fri, 28 September 2012 23:43 Go to previous messageGo to next message
jheblack is currently offline  jheblack
Messages: 12
Registered: September 2012
Promising Member
Hello nlneilson

Thanks for that part about DE-compilation though my fascination is not that but 'tampering' of the Static Binary's textual data. There are too many tales about changing strings in binaries so that is why.

@KOLDO, Thank you! Do your "naked" executables take up more than 10 Mega-bytes??? 'Qt' had my hopes up until I personally "Did The Math" to determine that in order to deploy 'Qt' as a deliverable, it would not be less than 10 Mega-bytes... Too bad for 'Qt'... I switched to Boost/Standard C++/ICU instead for all but the GUI; after wasting time on the GUI OR WHATEVER.

10 Mega-bytes is my 'absolute', hard file size top-- by the way for the "naked" executable -- combined and all DLLs that must be deployed. Why? It is a business decision.

[Updated on: Fri, 28 September 2012 23:55]

Report message to a moderator

Re: Static Binary [message #37378 is a reply to message #37377] Sat, 29 September 2012 00:57 Go to previous messageGo to next message
dolik.rce is currently offline  dolik.rce
Messages: 1789
Registered: August 2008
Location: Czech Republic
Ultimate Contributor

jheblack wrote on Fri, 28 September 2012 23:43

10 Mega-bytes is my 'absolute', hard file size top-- by the way for the "naked" executable -- combined and all DLLs that must be deployed. Why? It is a business decision.

TheIDE, which is quite complex application, takes up 5.1 MB on windows. No additional libraries are necessary Wink

Honza
Re: Static Binary [message #37379 is a reply to message #37378] Sat, 29 September 2012 01:32 Go to previous messageGo to next message
jheblack is currently offline  jheblack
Messages: 12
Registered: September 2012
Promising Member
Hello Honza

On windows, TheIDE is 5.1 MB without compression; uncompressed?
Re: Static Binary [message #37382 is a reply to message #37367] Sat, 29 September 2012 08:00 Go to previous messageGo to next message
nlneilson is currently offline  nlneilson
Messages: 644
Registered: January 2010
Location: U.S. California. Mojave &...
Contributor
What physical platform are you on?

In another post you mentioned Lubuntu OS.
If your unit had access for a micro SD card the size of your app would be almost irrelevant.

I was concerned about size before wasting time getting a primary app below 5MB and now 10MB with no concern. Then a few U++ apps at ~1-2MB.

On a micro SD card of 32GB and 9GB of data the app sizes are not much of a concern. Even the smart phones with 4G the time to transfer an app of 10-20MB is not a problem.

What is the main constraint that keeps you at 10MB?

edit: Regardless of what your app is intended to be used on don't you have access to something else to do your programming on?

What is the size of the jre/JVM needed?
I tinkered with Excelsior JET which is very good at keeping the total size down for an app but it is expensive. There are others:
http://en.wikipedia.org/wiki/List_of_Java_virtual_machines

Java in some respects is easier to program with than C++ but using U++ (once you get familiar with it) that is a different story.

As I mentioned in a previous post it is a matter of choice.

[Updated on: Sat, 29 September 2012 09:14]

Report message to a moderator

Re: Static Binary [message #37384 is a reply to message #37379] Sat, 29 September 2012 08:18 Go to previous messageGo to next message
dolik.rce is currently offline  dolik.rce
Messages: 1789
Registered: August 2008
Location: Czech Republic
Ultimate Contributor

jheblack wrote on Sat, 29 September 2012 01:32

Hello Honza

On windows, TheIDE is 5.1 MB without compression; uncompressed?
It is what comes out from MSVC compiler, with no further actions applied, so I believe it is uncompressed.

Honzs
Re: Static Binary [message #37385 is a reply to message #37382] Sat, 29 September 2012 08:47 Go to previous messageGo to next message
jheblack is currently offline  jheblack
Messages: 12
Registered: September 2012
Promising Member
Hello nlneilson

I am on Intel. In a perfect world, though I would be running BSD not Lubuntu. "The main constraint" for the 10MB top I speak of for this "Static Binary" -- the subject of this Post would be *Google App Engine's* file size limit or any other arbitrary business decision regarding file size downloads.

Regarding Intel, I "hacked" intel threading building blocks (TBB) once, but it was more than I needed (AND STUPID TOO) so I dumped it. We're talking about Intel Threading Building Blocks now.

Back to U++, can a newbie such as myself figure out how to include only the GUI related classes OR does everything get dumped into a U++ executable? (NOTE: I still have doubts.) I am assuming that only the used GUI classes get put into a U++ executable but because I am stupid, I have to ask here.

People are telling me that U++ doesn't have any dependencies I think. That is absurd, but like I said I'm stupid. I ran ldd on Linux once on a U++ executable and saw many, many foreign dependencies outside of U++ that frightened me greatly.

Following that, I had to immediately erase my entire operating system. Shocked

Carrying around a USB stick (Is that what a SD card is?) is not something I would be an advocate for though I do advocate. Laughing

Goodbye All
Re: Static Binary [message #37387 is a reply to message #37367] Sat, 29 September 2012 09:47 Go to previous messageGo to next message
nlneilson is currently offline  nlneilson
Messages: 644
Registered: January 2010
Location: U.S. California. Mojave &...
Contributor
It seems like you are pretty sharp.

Google's 10MB clarifies the size.

The GUI code is usually included in the U++ .exe
Without an idea of what kind of GUI you intend to use it is hard to even guess.

A micro SD card is about 1/2 x 3/8 x 1/32 inch, quite small.

Many cell phones use them for the camera photos.
Most tablet, slate. etc. have slots for SD cards, some full size but when you buy a micro it usually comes with an adapter.
32GB micro on sale at Fry's for $12.

One exception is many Apple devices where they charge by installed memory, no sd slot more $$$.

[Updated on: Sat, 29 September 2012 10:14]

Report message to a moderator

Re: Static Binary [message #37388 is a reply to message #37385] Sat, 29 September 2012 10:36 Go to previous message
dolik.rce is currently offline  dolik.rce
Messages: 1789
Registered: August 2008
Location: Czech Republic
Ultimate Contributor

jheblack wrote on Sat, 29 September 2012 08:47

Back to U++, can a newbie such as myself figure out how to include only the GUI related classes OR does everything get dumped into a U++ executable? (NOTE: I still have doubts.) I am assuming that only the used GUI classes get put into a U++ executable but because I am stupid, I have to ask here.
The GUI classes (and lot of others too) are implemented as templates, so only those actually used are present in the resulting binary. Aside from that, U++ is modular so only those packages that you use are compiled. E.g.: if you don't need CodeEditor widget in your app, you just don't add the package and you save both compile time and result size.

jheblack wrote on Sat, 29 September 2012 08:47

People are telling me that U++ doesn't have any dependencies I think. That is absurd, but like I said I'm stupid. I ran ldd on Linux once on a U++ executable and saw many, many foreign dependencies outside of U++ that frightened me greatly.

Every software has dependencies Smile U++ has fortunately very little. On windows, it depends AFAIK only on DLLs that come with windows installation, so you don't have to distribute them. On Linux, we use a few external libraries, but all of them are standard things present on 99% of computers anyway (e.g. libpng), so it is not a big deal as well. Number of the dependencies can be reduced by using flags, most notably NOGTK flag prevents against using anything GTK related, greatly reducing the number of shared libraries used. See attached file for comparison between normal, NOGTK and command line application. There is really nothing scary in the list of libs needed to run NOGTK variant of TheIDE Wink

Honza
  • Attachment: ldd.txt
    (Size: 5.04KB, Downloaded 259 times)
Previous Topic: How do I change the cursor to a wait state?
Next Topic: TTS text2Speech in U++
Goto Forum:
  


Current Time: Sat May 04 20:59:31 CEST 2024

Total time taken to generate the page: 0.03110 seconds