Цитата(DmitryM @ Feb 27 2013, 21:20)

стандартный способ:
#ifdef __cplusplus
extern "C" {
#endif
....
#ifdef __cplusplus
}
#endif
Эти вставки обычно делаются в .h файле сишного модуля для возможности использовать этот хидер при компиляции .cpp. Я их использую, но дело не в этом. Речь о том, что компиляция .c файла производится c++ компилятором, а нужно откомпилировать си-компилятором.
Проверил с mingw и codesourcery, там .c файлы также компилируются как c++ код, если передавать их g++ (но при генерации мэйкфайлов эклипсом для .c файлов используется gcc, а не g++ как в моем случае и все собирается без проблем). Т.е. я видимо был неправ здесь:
Цитата
Насколько я понимаю это нормально, g++ должен уметь компилировать как .c, так и .cpp, а выбор C/C++ компилятора должен производиться по расширению.
Значит для компиляции си-файла необходимо использовать именно gcc? Тогда получается Xilinx SDK неправильно формирует мэйкфайлы, используя g++ для .c -файлов. Возможно что-то неправильно с настройками...