我有一个小项目要在我大学的一门课程中创建,需要使用 Crypto++ 库。要求是我们不包括 Crypto++ 的整个源代码/二进制文件,而是从外部目录链接它。(例如 C:\cryptopp)。这是因为审阅者会链接他/她自己的目录来评估我的代码。
现在,我真的不擅长创建 Makefile 并且不完全理解它们的内容。
我在 Windows 7 上使用 MinGW。
所以我的主要问题是,我需要在 Makefile 中写什么才能在我的项目中从外部文件夹中使用 Crypto++?
假设您有以下生成文件:
unit.exe: unit.o
g++ unit.o -o unit.exe
unit.o: unit.cc unit.h
g++ -c unit.cc -o unit.o
为了修改它以使用外部库,您必须使用 GCC -I和-L选项:
unit.exe: unit.o
g++ unit.o -o unit.exe -L /c/cryptopp -l ws2_32 -l cryptopp
unit.o: unit.cc unit.h
g++ -I /c/cryptopp -c unit.cc -o unit.o
通常,makefile 会包含一个传递给编译器的变量和一个传递给链接器的变量,例如CFLAGS和 LDFLAGS。如果是这种情况,那么将“-I”和“L”选项添加到编译器和链接器变量可能会更容易。
另请参阅此处了解编译 CryptoPP 的方法。