QUOTE (SM @ Jan 23 2012, 09:26)

есть у меня допустим три проекта, которые собираются в три динамические либы, в каждой из них есть символы sym1, sym2, sym3. Мне надо собрать из этих же исходников три статические либы, у которых эти символы будут уже называться lib1_sym1, lib2_sym1, lib3_sym1, lib1_sym2, lib2_sym2, и т.д. - при этом исходники не править (с правкой я и сам знаю как, даже описал весь этот процесс).
Почему бы просто не заавтоматизировать то, что вы делаете руками: при компиляции очередного файла компилируется исходный файл, извлекается список экспортируемых имён, далее генерируется либо новый сорец с префиксными именами, либо как вы делали через дефайны, компилируется окончательный вариант. Исходный файл остаётся без изменений. Такую автоматизацию сделать совсем не сложно - вместо запуска только одного компилятора выполнить пакетный запуск набора инструментов.
Недостаток - два раза компилировать надо, но насколько это критично, судить только вам.