golib
0.5
|
golib is put under the GNU General Public License. It can be found in the source directory in the file COPYING or at http://www.gnu.org/licenses/gpl
You can contact me at golib at goschs dot de, with the usual replacements to form a valid email address.
goLib is a C++ class library written by Christian Gosch. It contains some classes which have proven useful to me and has grown gradually. Some parts are better maintained and better written than others, that depends completely on how much I have used them.
I have also started to rename some things to use a bunch of namespaces (such as goMath), but that has only been done in a few places. If the library turns out to be used out there somewhere, I will rework the naming to be more consistent if that is what is needed.
Some of the things golib includes are:
Check out the modules section to get another overview.
There are also additional libraries which use golib and are all included:
All additional libraries can be selected to be built from the ccmake interface.
I have tried Python for scripting and prototyping and it fits quite well into my programming habits and environment. Therefore, I will continue work on the Python interface for golib and neglect other interpreted languages. The Python module can be selected in the ccmake interface. The matlab and OpenGL modules also provide for a Python interface, which will automatically be built if you additionally select to build the Python and the Matlab interface in cmake/ccmake. You should also select the install directory for your Python modules in cmake/ccmake (the directory where the environment variable PYTHONPATH points to). You do need SWiG >= 1.3.29 and Python >= 2.4 for this. It might work with different versions, but was tried only with these.
Work on the scheme module is discontinued.
You will definitely need:
Optional, but very highly recommended:
Completely optional:
You will always need the pthread library. It is available in many modern Unix environments. golib has in an early version also been compiled on Windows, and there are Windows implementations for the multithreading classes too. However, many other things will probably not compile anymore in Windows. Depending on the version you are compiling, libSDL might also be necessary (only for golib 0.2). You can get it at http://www.libsdl.org.
This holds also possibly for other Debian based GNU/Linux distributions.
You need to set:
You may have to set:
LD_LIBRARY_PATH accordingly, depending on where you install golib
Add any non standard include directories to CPPFLAGS.
If you don't know what the latter two are, you probably don't need them.
To be able to run programs linked to golib, add the path to the shared library to your LD_LIBRARY_PATH environment variable. It would also be wise to set the environment variable GOPATH to the root path of the golib distribution, for example to /home/myUserName/golib. The example programs in the distribution need this variable to be set.
Using CMake:
There are several little example programs in /examples. For more recent examples, there is a subdirectory for each example. Makefiles are provided but may need small modifications (like -L linker options). Just try them, if they don't work, you need to modify them. They are very small and easy to understand. For very old example programs, there should be a makefile called Makefile.NAME_OF_THE_EXAMPLE_PROGRAM. Use these makefiles to compile the examples. Be sure to have the environment variables mentioned above set correctly.
Development has started some time in 1996/97. Some of this is work in progress. Note that I am currently not working very much on golib, since I have a day job, a non-virtual life, and other projects which have precedence. The current version number is 0.5. Some significant changes are always imminent (;-)). Some of the basic features are not very well documented, but I will fix that in the future. Particularly, "how-to-use" sections are missing in the documentation, even though many classes are straight forward to use. I plan to write some introductory documentation which explains some concepts.
You should also be aware that this library was created over a long time in small parts, some of which I used more than others. The parts I used more are likely to be better documented, better maintained, and generally in better shape.
I remove bugs as soon as I find them. As I only used to use parts of the library very often, these parts will probably contain less bugs than others. If you find a bug or think you found a bug, please do not hesitate to send me an email to golib at goschs __ de
.
A current version is not available online. If you are really interested in trying the library, please drop me a line.
No warranty at all.