我正在尝试使用外部库,但我很困惑它们是如何组合在一起的。
我有以下代码,我正在尝试做的就是编译:
#include "cryptopp/sha.h"
int main()
{
CryptoPP::SHA1 sha1;
return 0;
}
我正在使用g ++进行编译,从我的研究中我收集到了我需要追加
-lcryptopp
到编译命令的末尾,如下所示:
g++ crypto.cpp -o crypto.exe -lcryptopp
但是我收到以下错误:
/usr/lib/gcc/x86_64-pc-cygwin/4.9.3 /../../../../ x86_64-pc-cygwin / bin / ld:找不到-lcryptopp
这是我感到困惑的地方,我不确定-lcryptopp正在寻找什么,它是否正在寻找我在代码中包含的sha.cpp / sha.h文件?但更重要的是,我如何指定无论它在寻找什么,我只是希望它在与我的主.cpp相同的文件夹中的cryptopp文件夹中查找?
答案 0 :(得分:4)
-lcryptopp
告诉链接器将您的exe与动态库(共享对象)文件libcryptopp.so
相关联。 GNU链接器在/lib
,/usr/lib
等其他目录中搜索共享对象文件。
您可以指定其他目录以使用-L
选项搜索库文件,例如-L/usr/local/lib
。您应该找到您的库文件libcryptopp.so
所在的位置,并使用-L
选项将其路径传递给它。