将库添加到 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。
我刚刚安装了一个项目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。