Installing Libraries: A Lab Exercise
Installing Libraries A Lab Exercise
A number of examples in this book make use of classes found in one of the libraries that were written for this book. The source code for these classes is available for download.[4] In the HTML version of this book, the class names are all hyperlinked to API docs.[5] Here you learn how to download and install these extra classes.
[4] http://oop.mcs.suffolk.edu/dist
[5] http://oop.mcs.suffolk.edu/api
Instructions for installing libraries on a *nix platform for use with the book examples follow.
- Create a ~/projects/libs directory.
- Create a shell/environment variable CPPLIBS that contains the absolute path of projects/libs.
- You should already have a shell/environment variable QTDIR that contains the absolute path of the directory that contains Qt 4.[6]
[6] This is not required by Qt 4, but is required by Qt 3 and KDE, and is used for Qt 4 as a way of pointing to "the current version of Qt that you are using."
- Download libs.pro, utils.tar.gz, and dataobjects.tar.gz.[7]
[7] From http://oop.mcs.suffolk.edu/dist
- Unpack these two tarballs in the $CPPLIBS directory. That should result in two new subdirectories, $CPPLIBS/utils and $CPPLIBS/dataobjects.
- Create or modify a $CPPLIBS/libs.pro SUBDIRS project to build only libutils followed by libdataobjects.
- Build the libraries from the libs directory in two steps:
- qmake // to create a Makefile
- make // to build the library
- Verify that the libraries are built and that the shared object files (e.g., libutils.so) are located in the $CPPLIBS directory.
7.4.1. Fixing the Linker Path
- Update the shell/environment variable LD_LIBRARY_PATH (*nix) or PATH (win32) to include CPPLIBS.
- Create a projects/tests directory. This is where you can keep code for testing various library components.
- Download main.cpp from Example 6.26 into projects/tests and write/modify a tests.pro file to build that application using the utils library.
- Run the application.
- Verify that it gives the same output that we displayed back in Chapter 6 when we discussed the ArgumentList class.
On a *nix platform a shell script is generally used to define environment variables. Example 7.2 shows a bash script that handles the job. Example 7.2. src/bash/env-script.sh
You can run this script by typing one of the following commands: source env-script.sh or . env-script.sh Notice the dot (.) at the beginning of the second version. In the bash shell, the dot is equivalent to the command, source. If you want to make sure that these environment variables are automatically set at the start of each shell, you can source the script from ~/.bashrc, which runs automatically whenever bash starts. Hamish Whittal has put together a very nice online guide to shell scripting at http://learnlinux.tsf.org.za/courses/build/shell-scripting. |