Я работаю над кодом, который использует Open Dynamics Engine . Я работал с этим кодом раньше в Windows, но теперь я перехожу на Unix, чтобы получить опыт работы с C в среде Unix, и поэтому я не полагаюсь на Visual Studio. Я загрузил все в свой домашний каталог, собрал с помощью включенного make-файла и попробовал демо; все хорошо. Я сделал каталог и тестовый файл в нем с моим собственным тестом. Для моего #include я указал:
#include ".././ode-0.11.1/include/ode/ode.h"
#include ".././ode-0.11.1/include/drawstuff/drawstuff.h"
Поскольку библиотека находится в моем домашнем каталоге, а не в стандартном месте. Я иду, чтобы скомпилировать мой код, но:
.././ode-0.11.1/include/ode/ode.h:28:27: fatal error: ode/odeconfig.h: No such
file or directory
Глядя на ode.h, он включает в себя несколько других заголовков, расположенных в одном каталоге, но с использованием синтаксиса скобок вместо кавычек. Я предполагаю, что это как-то связано с тем, почему gcc не может найти другие заголовки. Я посмотрел на make-файлы, но не знаю достаточно, чтобы понять, в чем моя проблема. Почему мой сборник не работает? Хотелось бы получить подробный / подробный ответ, поскольку я хочу узнать, как все это работает (связывание, включение, создание и т. Д.).
Редактировать: Итак, я выяснил, как правильно включать заголовки, теперь мне нужно выяснить, как связать определения библиотек для функций ...
Edit2: до сих пор не могу понять, как сделать ссылку на мой код. Скомпилированные статические библиотеки выгружаются в '~ / ode-0.11.1 / ode / src / .libs' и '~ / ode-0.11.1 / drawstuff / src / .libs' для функций рисования.
Edit3: я думаю, я понял это. Я неправильно использовал параметр -l, и похоже, что он должен идти ПОСЛЕ файлов, которые ссылаются на функции из библиотек, на которые я ссылаюсь.