У нас есть настройка, в которой мы создаем интерфейс Python для библиотеки C.Мы наивно разоблачаем каждую функцию по ряду причин, и хотя это не оптимально, на данный момент это наименее плохое решение.
Наш интерфейсный файл swig просто импортирует два десятка заголовочных файлов C, и мысделайте это, затем скомпилируйте, затем свяжите результаты.
Проблема в том, что компиляция получающегося файла C идет очень медленно и, безусловно, является самым медленным шагом в нашем процессе сборки.У нас высокопараллельные машины, поэтому было бы неплохо разделить это на части.
Проблема в том, что при создании нескольких файлов интерфейса их компиляция в объектные файлы работает хорошо, но во время окончательной компоновки компоновщик (по праву) жалуется, что:
foo1.c:9147: multiple definition of `PyInit__bar_lib'
foo2.c:74285: first defined here
Есть ли способ разделить глотание?