fix multiple definitions issues under windows