首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GCC与Crypto++谈制作

GCC与Crypto++谈制作
EN

Stack Overflow用户
提问于 2017-02-18 15:31:10
回答 2查看 2.3K关注 0票数 0

我试着用gcc-make命令编译C++项目,但是程序出现了这个错误.我已经编译了Crypto++并添加了包含和库文件夹,但是我不知道如何将这个dir添加到gcc。

我应该做些什么来修复这个"-lcrytopp“错误?

我用的是makefile,这是33-34的线路。

代码语言:javascript
复制
$(TARGET): build $(OBJECTS)
    $(CC) $(OBJECTS) -o $(TARGET) -lcryptopp

误差

代码语言:javascript
复制
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 1

Crypto++目录:

编译错误:

EN

回答 2

Stack Overflow用户

发布于 2017-02-18 15:51:10

您还没有将包含库的目录添加到链接行中。它应该类似于-Lxxx,其中xxx是指向包含cryptopp库的目录的路径:

代码语言:javascript
复制
$(TARGET): build $(OBJECTS)
        $(CC) $(OBJECTS) -o $(TARGET) -Lxxx -lcryptopp

(将xxx替换为包含cryptopp库的目录)

票数 1
EN

Stack Overflow用户

发布于 2017-02-18 21:40:23

我应该做些什么来修复这个"-lcrytopp“错误?

在Unix兼容上从Crypto++构建目录工作时,项目不使用includelib (如图所示)。所有内容都放在根目录中(如图所示)。

如果执行make install,则会设置目录,但似乎没有安装。我还应该说,MinGW通常不再被测试,因为这个项目已经被放弃了,所以我不确定make install在MinGW上的实际安装位置。

若要修复编译错误,请调整您的“制作配方”:

代码语言:javascript
复制
$(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。

您的第一张图片显示了ipchWin32目录。这通常意味着您使用Visual构建了Crypto++库。现在你正在和GCC一起建立一个计划。不应该像那样混合和匹配编译器。不会有什么好结果的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42317104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档