libc.h: при компиляции примера конвейера nanomsg такого файла или каталога нет
Попытка запустить простой файл nanomsg, начиная с первого здесь: https://github.com/dysinger/nanomsg-examples
Установлено Nanomsg для /usr/local/lib/nanomsg-0.2-alpha
, Ран sudo ./configure
, sudo make check
, sudo make install
а также sudo ldconfig
как сказано в инструкции. Все тесты проходят.
Когда я запускаю, он говорит, что libc.h не найден:
$ gcc pipeline.c /usr/local/lib/libnanomsg.a -o pipeline
pipeline.c:2:18: fatal error: libc.h: No such file or directory
compilation terminated.
Что такое libc.h? Я не занимался программированием на Си с колледжа. Это часть nanomsg или библиотека C?
$ which gcc
/usr/bin/gcc
Ubuntu 12.04.4 LTS
2 ответа
Libc.h содержит небольшой список включений. Чтобы скомпилировать образец nanomsg, достаточно ( src):
Замена:
#include <libc.h>
с
#include <unistd.h>
#include <string.h>
#include <pthread.h>
Я использовал этот cmd для статической компиляции:
gcc -pthread bus.c ../nanomsg/.libs/libnanomsg.a -o test -lanl
Обратите внимание на -pthread и -lanl в конце строки.
Попробуйте следующее:
$ sudo updatedb
$ locate libc.h
найти путь, где libc.h
расположен. например, если ваш libc.h
является /usr/local/include
gcc -I/usr/local/include pipeline.c /usr/local/lib/libnanomsg.a -o pipeline