我试着用gcc-make命令编译C++项目,但是程序出现了这个错误.我已经编译了Crypto++并添加了包含和库文件夹,但是我不知道如何将这个dir添加到gcc。
我应该做些什么来修复这个"-lcrytopp“错误?
我用的是makefile,这是33-34的线路。
$(TARGET): build $(OBJECTS)
$(CC) $(OBJECTS) -o $(TARGET) -lcryptopp误差
D:\Osman\CnC RA2\Mix\ccmix-crypto\ccmix-crypto>make
g++ src/mix_db_gamedb.o src/mix_db_gmd.o src/mix_header.o src/mix_db_lmd.o
src/mixid.o src/ccmix.o src/mix_file.o -o build/ccmix -lcryptopp
c:/mingw/bin/../lib/gcc/mingw32/5.3.0/../../../../mingw32
/bin/ld.exe: cannot find -lcryptopp
collect2.exe: error: ld returned 1 exit status
Makefile:34: recipe for target 'build/ccmix' failed
make: *** [build/ccmix] Error 1Crypto++目录:

编译错误:

发布于 2017-02-18 15:51:10
您还没有将包含库的目录添加到链接行中。它应该类似于-Lxxx,其中xxx是指向包含cryptopp库的目录的路径:
$(TARGET): build $(OBJECTS)
$(CC) $(OBJECTS) -o $(TARGET) -Lxxx -lcryptopp(将xxx替换为包含cryptopp库的目录)
发布于 2017-02-18 21:40:23
我应该做些什么来修复这个"-lcrytopp“错误?
在Unix兼容上从Crypto++构建目录工作时,项目不使用include和lib (如图所示)。所有内容都放在根目录中(如图所示)。
如果执行make install,则会设置目录,但似乎没有安装。我还应该说,MinGW通常不再被测试,因为这个项目已经被放弃了,所以我不确定make install在MinGW上的实际安装位置。
若要修复编译错误,请调整您的“制作配方”:
$(TARGET): build $(OBJECTS)
$(CXX) $(CXXFLAGS) -I. $(OBJECTS) ./libcryptopp.a -o $(TARGET)上面的菜谱使用CXX (C++编译器)而不是CC (C编译器);它使用CXXFLAGS (应该类似于-DNDEBUG -g2 -O2);它调用标题路径(-I.);它链接到静态库(./libcryptopp.a)。链接到静态库将避免下一组问题。
你可以听从“疯狂科学家”的建议,使用-LXXX和-lcryptopp。您甚至可以使用-Wl,-rpath,D:\Osman\CnC RA2\Mix\ccmix-crypto\ccmix-crypto添加一个运行路径。但最终,使用-L和-l会带来相当大的麻烦。通过静态链接libcryptopp.a来避免未来的问题。
还请参阅GNUmakefile /编译和链接上的Crypto++ wiki。
您的第一张图片显示了ipch和Win32目录。这通常意味着您使用Visual构建了Crypto++库。现在你正在和GCC一起建立一个计划。不应该像那样混合和匹配编译器。不会有什么好结果的。
https://stackoverflow.com/questions/42317104
复制相似问题