GlobalObjects
Loading...
Searching...
No Matches
GlobalObjects installation

Windows Install

First, the files and directories are unpacked from the downloaded file "WinGloXXX.zip" onto a data carrier (the letters 'X' reflect the respective version number).

The resulting directory structure:

To install GlobalObjects, the EuSetup.exe setup program is run.
To select the installation directory, click through to the directory selection.

Individual components can be selected, which are explained briefly below.

Setup Compiler

The respective libraries and tools can be selected under this selection node. If the preferred compiler is below the selection, it is recommended that you select it. Several compilers can also be selected.
The individual components to be installed are explained using the example of GlobalObjects Version x.x.x for 'Microsoft Visual C++ 2017 (32 Bit)' in the installation directory C:/Glo.

Setup Libraries (LIBs and DLLs)

All required libraries (DLL and LIB files) for the selected compiler are installed.

The resulting files can be found in the installation directory under %GlobalObjects installation directory%\Compiler\MS_Visual_C++_2017\Lib.

Setup GlobalObjects examples

To get to know GlobalObjects, some programming examples are installed for the selected development environment.

The resulting solution files can be found in the installation directory under %GlobalObjects installation directory%\Examples\MS_Visual_C++_2017.


The associated databases can be found under %GlobalObjects installation directory%\Examples\Bases and the header and source files of the example classes under %GlobalObjects installation directory%\Examples\include and %GlobalObjects installation directory%\Examples\source.

Setup GlobalObjects tools

Individual tools will be installed.

  • GloDeveloper GloDeveloper helps to create the persistent classes and the corresponding object databases.
  • GloExplorer With the GloExplorer the object databases can be inspected.
  • GloServer Several clients can access the object databases simultaneously via the GloServer.

The GlobalObjects tools can be found in the installation directory under %GlobalObjects installation directory%\Tools\bin32.

Setup GlobalObjects Environment variables

The recommended environment variables can be set.

  • EUCPPDIR (path to C++ header and source) The GlobalObjects header- and if selected the GlobalObjects source files, are stored in the installation directory under the version number in the directory 'Src'. In the respective development environments for the examples, this environment variable is used in the respective project folders. It is recommended to use this environment variable also in your own project files.
  • OWNVS141LIBDIR (path to DLLs and LIBs) The compiler specific GlobalObjects DLLs and LIBs are stored e.g. for the example case 'Microsoft Visual C++ 2017' in the installation directory under the version number in the directory 'Compiler/Microsoft Visual C++ 2017/lib' and are kept in this environment variable. It is recommended to use this environment variable also in your own project files.
  • Extended PATH to OWNVS141LIBDIR The reference to the compiler specific GlobalObjects DLLs and LIBs can be transferred to the environment variable 'Path'.

Setup C++ files

The GlobalObjects C++ files.

Setup GlobalObjects C++ header

The required header files to use the libraries of GlobalObjects.

Note
This selection is mandatory for development with GlobalObjects

The installed C++ header files can be found in the 'Src directory' in the respective subprojects under the respective 'include directories' such as %GlobalObjects installation directory%\Src\GlobalObjects\include.

Setup GlobalObjects C++ source

To debug in the GlobalObjects library, the source files can be installed optionally.

The installed C++ source files can be found in the 'Src directory' in the respective subprojects under the respective 'source directories', e.g. %GlobalObjects installation directory%\Src\GlobalObjects\source.

Setup Global Objects user manuals

User manuals can be installed for GlobalObjects itself and the individual GlobalObjects tools.

The installed user manuals can be found in the installation directory under %GlobalObjects installation directory%\Tools\Manuals.

Setup GlobalObjects for co-developers

Since GlobalObjects is free software, all sources used for development can be installed.

Setup GlobalObjects for co-developers / C++

In this section the compiler specific GlobalObjects project files can be selected for installation. Anyone may use it to further develop GlobalObjects.

The resulting project file for GlobalObjects in this example can be found in the installation directory under %GlobalObjects installation directory%\Compiler\MS_Visual_C++_2017\GlobalObjects.

Setup GlobalObjects for co-developers / doxygen documentation

In this section the documentation data for GlobalObjects and other used libraries are offered for installation. Improvements and especially translations are always welcome.

The resulting doxygen documentation files for GlobalObjects can be found in the installation directory under %GlobalObjects installation directory%\Src\GlobalObjects\Docu.

Linux Install

First, the files and directories from "LinGloXXX.tar" are unpacked to a data medium (the letters 'X' reflect the respective version number).

The resulting directory structure:

The project files are designed for the Qt Creator and the source files for the GCC and Clang respectively. Qt should be available on the system. If the GlobalObjects tools are to be created, Qt is mandatory.

If Qt is installed, the MakeLibs.sh and MakeTools.sh files should be made executable first.
MakeLibs.sh compiles the required GlobalObjects libraries (Release and DEBUG) and copies them into the directory 'glo/QtCreator_GCC/lib'.
MakeTools.sh compiles the GloDeveloper, GloExplorer and GloServer and copies them into the directory 'glo/QtCreator_GCC/bin'.
In order for the GloTools to find 'their' libraries, the directory 'glo/QtCreator_GCC/lib' must be made known to the system as library directory.

Various settings

Some Qt Creator settings might be necessary, e.g. to try out the examples in debug mode.

Content of std::string is not displayed (_DEBUG)

In some Linux distributions, inconsistencies have arisen with the Qt Creator. For example, if the content of std::string is not displayed in the debugger, the following changes in the file '/usr/share/qtcreator/debugger/stdtypes.py' have proven successful:

(size, alloc, refcount) = d.split("ppp", data - 3 * d.ptrSize())

replaced by

(size, alloc, refcount) = d.split("ppp", value.address() + d.ptrSize())

and

d.check(0 <= size and size <= alloc and alloc <= 100*1000*1000)

removed or commented out.

Debugger error message SIGSTOP

If the following error message appears during debugging,

The following settings in Qt Creator under Tools/Options.../Debugger->Local Variables & Expressions in the text field Debugging Helper Customization can help:

handle SIGSTOP nopass
handle SIGSTOP nostop

GlobalObjects libraries

To work with GlobalObjects, some DLLs must be included in your own projects, which are briefly explained here. Three DLLs are provided, each for the currently supported compilers and operating systems. The structure is as follows; NNNvvvCCCGGGBB or NNNvvvCCCGGGBBd the debug versions, whereby the individual letters and numbers have the following meaning:

  • NNN Reflects the name of the DLL and is written in capital letters.
    • INIFILE Provides the functionality to edit INI files. The schemas of the persistent objects with their object files are stored in this file type.
    • TCP This DLL contains the functionalities for multi-user operation of GlobalObjects.
    • GLOA This DLL is basically required when developing with GlobalObjects.
  • vvv Is the abbreviation in small letters for the compiler used. At the moment the DLLs for the following compilers are provided or created:
    • v Is the abbreviation for Microsoft compiler.
    • mw Is the abbreviation for Mingw compiler.
    • gc Is the abbreviation for Linux Gcc compiler.
    • cl Is the abbreviation for Linux Clang compiler.
  • CCC Indicates in digits the version of the used compiler (e.g. 'v141' for Microsoft Visual Studio 2017 or .'mw730' for mingw version 730.
  • GGG Indicates the version of the DLL in digits.
  • BB Indicates in digits ,whether it is a 32 or 64 bit DLL.
    Note
    This is not necessary under Linux when recompiling. So I did not include it in the naming in the project files.
  • d An optionally appended small 'd' marks the respective DLL as debug version.

Additionally libraries

GlobalObjects for Visual C++ 2010 from Microsoft and the graphical GlobalObjects tools have been created with additional libraries that may need to be downloaded. In each case they are OpenSource!

POSIX Pthreads-w32 (for Visual C++ 2010)

To make GlobalObjects largely system-independent, threads were originally implemented according to the "POSIX 1003.1-2001" standard with Pthreads-w32. Since GlobalObjects version 0.1.1 std::thread are used.
Only if GlobalObjects is used for Visual C++ 2010 from Microsoft, the "pthreadVC2.dll" from Pthreads-w32 is required. Further information and any new versions can be found at https://www.sourceware.org/pthreads-win32/.

Qt

The GlobalObjects tools GloDeveloper and GloExplorer with their graphical user interface are realized with the C++ library Qt. Only if these GlobalObjects tools are to be recompiled, the Qt Framework is required, which can be found at https://www.qt.io.