Попробуйте вставить в файлы реализации cpp после того, как они включают ваш заголовок, следующую строку (строки) препроцессора:
//in compswitch1.cpp
#ifndef CompSwitch1
# error "inconsistent header included"
#endif
//in compswitch2.cpp
#ifndef CompSwitch2
# error "inconsistent header included"
#endif
Если вы компилируете неправильные пары header / cpp, вы должны получить как минимум ошибки компиляции, а не ссылки ошибок. Там гораздо проще идентифицировать / исправить;)
Другая возможность состоит в том, что cpp-файлы вообще не включены в компиляцию. Поместите прагму сообщения в файл cpp, чтобы посмотреть, скомпилированы ли они вообще:
#pragma message( "Compiling " __FILE__ )
Или попробуйте определить в каталоге сборки, созданы ли объектные файлы, относящиеся к модулям компиляции cpp.
Надеюсь, это поможет,
Ованес