Пилю тут проектик с libusb-1.0 и libevent. Работает как-то все странно, глючно. Сразу как переполз на libusb-1.0 из-за необходимости асинхронного апи. И тут при сборке вылезает:
lua: error loading module 'auracore' from file './libauracore.so':
./libauracore.so: undefined symbol: libusb_handle_events_timeout_completed
Какого хрена? libusb стоит, хедер на месте, функции задефайнены. strings|grep показывает что символ точно есть. Вот зе фак? Взял в руки ldd, и охренел:
1 ✗ necromant @ sylwer ~/Dev/software/aura $ ldd libauracore.so
...
libusb-1.0.so.0 => /usr/local/lib/libusb-1.0.so.0 (0x00007f99852fc000)
...
Но что в /usr/local делает еще один libusb, если я его руками никогда не конпелял?
Ковыряю дальше:
ls -la /usr/local/lib/libusb-1.0.so.0
lrwxrwxrwx 1 root root 17 Sep 10 2013 /usr/local/lib/libusb-1.0.so.0 -> libmchpusb-1.0.so
ls -la /usr/local/lib/libmchpusb-1.0.so
/usr/local/lib/libmchpusb-1.0.so -> /opt/microchip/mplabcomm1.0/libusb-1.0.so.0.0.0
Оказалось, виной тому MPLABx стоящий в /opt/. Гениальные инженегры микрочипа решили тащить в систему свой libusb с блэкджеком и ***хами. И похрен, что он поломает полсистемы и кучу софта, который ожидает увидеть системный libusb. Нет, ну это даже не смешно уже... Причем их libusb по ходу запаченный вусмерть.