Я компилировал библиотеку c (для использования в проекте c ++) с помощью clang. У меня возникли ошибки компоновщика (в частности, неопределенный символ для функции hqxInit) при попытке связать эту библиотеку. Когда я переключаюсь на clang ++, он работает. Проверяя с помощью nm, clang ++ изменяет имена дальше. Что происходит - и есть ли лучший способ сообщить компоновщику, что библиотека munged-for-c, а не munged-for-c ++? Кажется глупым создавать библиотеку c с помощью c ++ ....
// построено с помощью clang
$ nm libhqx.a
libhqx.bak(init.c.o)
04000000 C _RGBtoYUV
00000004 C _YUV1
00000004 C _YUV2
00000000 T _hqxInit
// построено с помощью clang ++
$ nm libhqx.a
libhqx.a(init.o):
00000100 S _RGBtoYUV
04000100 S _YUV1
04000104 S _YUV2
00000000 T __Z7hqxInitv