将库添加到 makefile

Adding a library to a makefile

我刚刚安装了一个项目RtMidi并编译了它。 tests 文件夹中的示例有效,如果我将代码放入该文件夹并将其包含在编译所有示例的 Makefile 中,我的代码也有效。如何在带有 #include <RtMidi.h> 的项目中使用 RtMidi 而不是将我的代码放在测试文件夹中?更具体地说,我应该在 Makefile 中放入什么?我读过一些关于动态和静态库的内容,但我不知道我应该寻找什么。我试过添加 -llibrtmidi/usr/local/lib/librtmidi.a 但没有成功。

在标准 Makefile 中,CXXFLAGS 宏定义了 C++ 编译器的标志。您需要向此宏添加 -I<path to header directory> 以便编译器找到 RtMidi 头文件。

然后您需要将-L<path to lib directory>添加到Makefile的link步骤,以便-lrtmidi找到库文件。 (请注意,您省略了 -l 命令的 lib 前缀)

根据您对环境的描述,您可能需要类似

的内容
CPPFLAGS += -I/usr/local/include

LDFLAGS += -L/usr/local/lib

LDLIBS += -lrtmidi

在您的 Makefile 中。 make 使用了很多 implicit variables