2015-10-02 6 views
0

Я только что установил RtMidi для проекта и скомпилировал его. Примеры в папке tests работают и мой код, если я помещаю его в папку, и включаю его в Makefile, который компилирует все примеры. Как я могу использовать RtMidi в проекте с #include <RtMidi.h> вместо моего кода в папке с тестами? В частности, что я должен добавить в свой Makefile? Я немного читал о динамических и статических библиотеках, но я понятия не имею, что мне нужно искать. Я пробовал добавить -llibrtmidi и /usr/local/lib/librtmidi.a без успеха.Добавление библиотеки в make-файл

ответ

2

В стандартном файле Makefile макрос CXXFLAGS определяет флаги для компилятора C++. Вам нужно будет добавить -I<path to header directory> в этот макрос, чтобы компилятор мог найти заголовочные файлы RtMidi.

Затем вам нужно добавить -L<path to lib directory> к шагу ссылки в файле Makefile, чтобы -lrtmidi нашел файл библиотеки. (Обратите внимание, что вы опускаете lib префикс команды -l)

+0

Спасибо! Это сработало хорошо. Почему я должен добавить '-I/usr/local/include /' и '-L/usr/local/lib /' хотя? Разве компилятор не ищет библиотеки по умолчанию? –

+1

Обычно компилятор настроен на просмотр в/usr/local по умолчанию - но не на всех системах. Ваша система должна быть настроена так, чтобы не использовать/usr/local по умолчанию. –

1

На основании вашего описания вашей среды, вам может потребоваться что-то вроде

CPPFLAGS += -I/usr/local/include 

LDFLAGS += -L/usr/local/lib 

LDLIBS += -lrtmidi 

в вашем Makefile. make использует много из них implicit variables.

Смежные вопросы