В настоящее время я пытаюсь скомпилировать проект (DOMJudge), и компиляция не удалась cgroup_init in -lcgroup
, Когда я посмотрел на скрипт, я обнаружил, что этот установщик ищет gcc lib cgroup
называется флагом -lcgroup
,
Но я не нахожу никакой информации о такой библиотеке в Linux или других системах.
gcc -lcgroup test.c
также вернул ошибку.
Я уже пытался заменить -lcgroup
от -lcgroups
,
Программное обеспечение, которое должно быть выполнено, это
| #ifdef __cplusplus
| extern "C"| #endif
| char cgroup_init ();
| int
| main ()
| {
| return cgroup_init ();
| ;
| return 0;
| }
Так что со стандартом C и C ++, если вы хотите скомпилировать с системной библиотекой, вы используете -l<libname>
флаг.
Просто следуй инструкции.
Авторы DOMJudge уже потратили значительное количество времени на подготовку документации, которая объясняет все это.
Мы можем увидеть libcgroup-dev
входит в команду установки пакета, указанную в раздел «Предпосылки».
Поскольку имя пакета — libcgroup-dev, это не значит, что он должен установить libcgroup.a или .so в / lib для ссылки на -lcgroup. Вместо этого он может установить libfoo или libbar. По той ссылке sf.net, которая указана выше (и это предположительно, так как я не использую lib), это больше похоже на то, что пакет libcgroup устанавливает libcg для ссылки как -lcg, что и должна использовать команда compile, а -dev просто включает заголовки, которые предполагают, что основной пакет установлен.
Я предлагаю ls libcg * в / lib и / lib64, чтобы увидеть, какое может быть реальное имя.