I stand corrected. Defining wxUSE_UNICODE does nothing - it has to be defined to a value, 0 or 1. Also, any of the UNICODE defines should work equally well, as long as wx/platform.h is included first - which it is by both wx/string.h (through wx/defs.h) and wx/wxchar.h.
However main.o was definitely compiled with wxChar typedef'd as char, which can only happen when wxUSE_UNICODE = 0.
See wx/string.h line 266 for the declaration of InitWith with wxChar, and wx/wxchar.h lines 181 and 182 for the typedef of wxChar.
Rebuild?