|
|
Home » Community » Newbie corner » Building applications (Where are the .a and .so files?)
Building applications [message #54542] |
Wed, 12 August 2020 02:03 |
normvcr
Messages: 5 Registered: October 2015
|
Promising Member |
|
|
After untarring upp-posix-14429.tar and building with ./install, I get the theide and umk binaries, but there are no .a or .so libraries for building applications. There are lots of .o files in the .cache hierarchy, however. How does one build the libraries and move them to a common folder? How does one collect the header files into a common folder? (I see there is a umk build utility, but I would like to be able to fall back to compilers and linkers, directly. Also, I have found a description of the umk command line, but not a high level description of umk for beginners)
|
|
|
Re: Building applications [message #54543 is a reply to message #54542] |
Wed, 12 August 2020 03:49 |
|
Xemuth
Messages: 387 Registered: August 2018 Location: France
|
Senior Member |
|
|
Hello Normvcr,
To speak about UMK we must first speak about packages. The thing is, an U++ application is made of "packages"
From U++ documentation Packages are centric to U++. An executable application is built from a package. A package can also build into a dynamic link library. A package can be used by other packages. A package corresponds to a single directory with the directory name being the name of the package. The package directory contains the package definition file (a plain text file with a .upp extension), which always has the same name as the package directory. The package definition file contains a list of the source files that make up the package, plus information on what type of package it is, how it should be built and what other packages it uses. The source files for the package are normally located in the package directory and its subdirectories, but they may be in any desired location.
By example, most famous packages of Upp are:
-Core (which also include the plugin/z package) the core package is one of pillars of Upp framework, it provide a lot of interesting think
-CtrlLib (which also include CtrlCore(which also include ...)) the CtrlLib package will provide most of features you need to do real interesting GUI
Package can be configured to allow some option on compilation/linking depending on flags(by example depending on the OS or the build type)
UMK is a tool which will link a compilation toolchain (GCC / CLANG / MSVS) with all the U++ logic (packages, assemblies etc...)
so, when you will need to build an U++ application, instead having to specify to your compiler wich source code he should look for or wich librairy need to be link, Umk will read package information and will use the compiler you chose to build your application / dll ...
The way you link UMK to a compilation toolchain is by creating Build method which can be seen in TheIDE :
As you can see, in the build method editor window of TheIDE you can specify most of thing a compilator need.
Later when you will compile your package (which can contain some others packages), TheIDE will invoque UMK and use your current build method to build your app.
The current build method is here in TheIDE :
When you want to compile your package by command line (imagine you develop your application under windows then compile it on linux without any Graphical interface)
then you must call UMK (as you have seen in the doc) by specifing your build method, package, assemblies etc... (https://www.ultimatepp.org/app$ide$umk$en-us.html)
I'm not sure I answered your question, but maybe with a more precise vision about UMK your problem will be resolve
Xemuth
|
|
|
|
|
|
|
Re: Building applications [message #54548 is a reply to message #54545] |
Wed, 12 August 2020 15:39 |
|
mirek
Messages: 14162 Registered: November 2005
|
Ultimate Member |
|
|
normvcr wrote on Wed, 12 August 2020 04:17Thank you for the replies! Here is a screen shot of my Build Methods. As you can see, there are no folders listed under LIB directories. The folders that you are showing are under C:\Upp\Clang, these do not seem to be the implementation libraries for Ultimate++. For example, why are the SDL libraries stored under C:\Upp? Are these not generic SDL implementation libraries?
U++ for Win32 ships with a couple of external libraries, that is what you see there.
Quote:
It seems to me that Ultimate++ does not provide a way to create the Ultimate++ libraries....??
That is about correct. Not that it would not be possible, but they are not needed. Nobody cares too much.
In this regard, please consider the situation similar to e.g. Python - would you expect library files for Python libraries?
Any intermediate files are considered the implementation detail (.a files are sometimes produced, sometimes not, whichever fits the required build better).
That frankly means that you are required to use at least umk to build U++ projects. OTOH, you will not have to deal with library paths, build setup, include paths etc.. anymore.
Mirek
|
|
|
Goto Forum:
Current Time: Sat Dec 14 13:46:47 CET 2024
Total time taken to generate the page: 0.02734 seconds
|
|
|