See the Single UNIX Specification. If you make only the assumptions given in the man pages provided by the OpenGroup in its Single UNIX Specification, then your code should work on all UNIX-compliant OSs.
If you use my development/coding search engine, it is heavily biased in favor of sources from the Single UNIX Specification, and clicking on "Single UNIX Specification" will limit the search to that source. As long as you restrict yourself to the guarantees made by the spec, then it should work on all UNIX variants.
I should also point out that if you restrict yourself even further to using only features provided by the ISO C++ standard, by the Boost C++ libraries, and by WxWidgets, then you should be able to target not only all variants of UNIX, but also Windows as well. However, if you only need to target UNIX, then any of the system interfaces in the Single UNIX Specification as specified therein should be safe to use.
In terms of development environment, I would recommend that you install a copy of Ubuntu Linux in VirtualBox, since setting up a working development environment on that particular distribution of Linux is as simple as a single invocation of sudo apt-get install
, and Linux is de-facto compliant with UNIX. The single command sudo apt-get install build-essential pkg-config g++ automake autoconf cmake doxygen libboost1.40-dev libwxgtk2.8-dev
is sufficient to get a fully working C++ development environment on Ubuntu with WxWidgets and the Boost C++ Libraries installed.