When compiling for X, you must explicitly link it with libX11.
g++ -lX11 -L<absolute path to X11 libs> <filename-to-compile> -o
<output-filename>
ex.) on my system your code compiles fine using
g++ -lX11 -L/usr/X11R6/lib gcctest.cc
Reality is but a brief respite between my fantasies.
-unknown