# Compiling Phix vs Other Languages

I once saw a post on a mailing list asking how to compile a simple C++ program, the answer given was:

    g++ -o sample_browser.exe ole_browser.cpp -I../../../include -L../../../lib/mingw6 -liupole -liup -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lcomctl32

which struck me as not particularly unusual and somewhat harder to enter/remember than

    p -c ole_browser

Admittedly you might want "-norun" or "-d" and maybe "-dumpil" or "-nodiag" options, but that’s it, relating to compilation.
The only other command line options are
"-p" [not intended for general use, windows-only create pw.exe from p.exe or vice versa],
"-batch" [suppress prompts on error, meant for test/terror],
"-isense" [an editor thing, for intellisense lookups], and
"-safe" [same as with safe_mode].
Oh, I suppose I should also mention "stub includes" such as builtins/pGUI.e which is just "include ../demo/pGUI/pGUI.e" or a win32lib.ew containing (say) "include ../win32lib7/win32lib.ew".
In XE2, I kid thee not, there are a total of 35 screenfuls of build configuration options, times at least 6 levels of target hierarchy, plus 81 screens of IDE options, both of which are dwarfed by 70-odd properties and some 49 events on each and every gui component. Worst of all, there is no search or filter for any of that lot. At one point I estimated that meant there were over 45,000 places I had to check for something amiss (not that I’d recognise it right in front of my face) when some program or other I was working on was refusing to compile, and of course the error message was utterly indecipherable and gave "no suitable matches" in Google. Should you get anything wrong then consider yourself extremely lucky if you get any error message at all, even if it is total gibberish, that is, from your average C++ compiler.