If you want to compile programs that use the Time/Employee classes or CCC graphics, then you need to download and unzip the programs for this book from http://horstmann.com/bigcpp.html#code . Unzip all files into a directory such as ~/cccbook. If you choose a different installation directory, modify these instructions accordingly.
Here are the instructions for compiling programs:
g++ -o executable_name source_fileFor example,
g++ -o hello hello.cpp
g++ -o executable_name -I ~/cccbook/cccfiles source_file ~/cccbook/cccfiles/ccc_time.cppFor example,
g++ -o time1 -I ~/cccbook/cccfiles time1.cpp ~/cccbook/cccfiles/ccc_time.cppAlternatively, you can simply copy ccc_time.cpp and ccc_time.h from the ~/cccbook/cccfiles directory into the same directory as the program that uses them, and compile with a simpler command line.
cp ~/cccbook/cccfiles/ccc_time.* .For example,
g++ -o executable_name source_file ccc_time.cpp
g++ -o time1 time1.cpp ccc_time.cpp
g++ -I ~/cccbook/cccfiles -o executable_name
source_file ~/cccbook/cccfiles/ccc_x11.cpp ~/cccbook/cccfiles/ccc_shap.cpp -L /usr/X11R6/lib -lX11
The command must be typed on a single line.
For example,
g++ -I ~/cccbook/cccfiles -o phoenix
phoenix.cpp ~/cccbook/cccfiles/ccc_x11.cpp ~/cccbook/cccfiles/ccc_shap.cpp -L /usr/X11R6/lib -lX11
Caution: With Mac OS X Mountain Lion, you need to add
-I /opt/X11/include
after g++
.
Alternatively, you can copy ccc_win.h, ccc_x11.h, ccc_x11.cpp, ccc_shap.h, and ccc_shap.cpp from the ~/cccbook/cccfiles directory into the same directory as the program that uses them, and compile with a simpler command line.
g++ -o executable_name source_file ccc_x11.cpp ccc_shap.cpp -L /usr/X11R6/lib -lX11For example,
g++ -o phoenix phoenix.cpp ccc_x11.cpp ccc_shap.cpp -L /usr/X11R6/lib -lX11For the "ASCII art" version of the graphics library, use
g++ -D CCC_ASC -I ~/cccbook/cccfiles -o executable_nameFor example,
source_file ~/cccbook/cccfiles/ccc_asc.cpp ~/cccbook/cccfiles/ccc_shap.cpp
g++ -D CCC_ASC -I ~/cccbook/cccfiles -o phoenixFor the wxWidgets version of the graphics library, use
phoenix.cpp ~/cccbook/cccfiles/ccc_asc.cpp ~/cccbook/cccfiles/ccc_shap.cpp
g++ -o executable_name -DCCC_WXW -I ~/cccbook/cccfiles `wx-config --cflags`For example,
source_file ~/cccbook/cccfiles/ccc_x11.cpp ~/cccbook/cccfiles/ccc_shap.cpp `wx-config --libs`
g++ -o phoenix -DCCC_WXW -I ~/cccbook/cccfiles `wx-config --cflags`
phoenix.cpp ~/cccbook/cccfiles/ccc_x11.cpp ~/cccbook/cccfiles/ccc_shap.cpp `wx-config --libs`
Note that the wxWindows library has changed the name to wxWidgets.
You first need to build the library. Download the file
wxGTK-x.y.z.tar.bz2 (where x.y.z is the current version number) from http://www.wxwidgets.org/. Type the
following commands in a shell window:
cd the directory into which you downloaded the file
tar xvf wxGTK-x.y.z.tar.bz2
cd wxGTK-x.y.z
./configure
make
sudo make install
Supply your root password when prompted.
(If you can't run sudo, instead execute su, provide the
root password, and then make install.)
On Mac OS X, you use wxMac-x.y.z.tar.gz instead; the other
instructions are the same.
Once you have built the library, compiling applications is fairly simple, thanks to the handy wx-config utility. Simply use
g++ -o executable_name `wx-config --cflags` source_file `wx-config --libs`For example,
g++ -o button `wx-config --cflags` button.cpp `wx-config --libs`