我已经用 C++ 启动了一个项目,需要实现一些 openssl 库。我下载了库,按照有关如何安装 openssl 的说明进行操作。
这很痛苦,由于多种原因不得不多次安装/重新安装。
我终于能够看似正确地安装 openssl 并编译库,将它们与 -libcrypto 和 -libssl 链接,而不是我到处看到的 -lcrypto 和 -lssl。
我已经完成了调试过程,我的包含很好,并且暗示似乎工作,因为 g++ 找到错误文件并引发编译错误,但是当它“成功”编译并运行 .exe 时,我得到了这个错误。
我已经搜索了我的 openssl intall 位置,并且确实找到了该文件。
这是我的makefile代码,所有这些位置都清楚地在构建路径中
# *- Makefile -*
compiler=g++
standLib=-lstdc++ -llibcrypto -llibssl
include=-I C:\openssl-1.1.0e\include
ExtLibrary=-L C:\openssl-1.1.0e // <--- LOCATION OF THE .dll FILE
outfile=-o main.exe
all : main.o fileReader.o main
clean :
del *.o *.exe
main: main.o fileReader.o numbers.o
$(compiler) main.o $(standLib) $(include) $(ExtLibrary) $(outfile)
main.o : main.cpp fileReader.cpp
$(compiler) -c main.cpp $(standLib) $(include) $(ExtLibrary)
fileReader.o : fileReader.cpp fileReader.h
$(compiler) -c fileReader.cpp $(standLib)
numbers.o : numbers.cpp numbers.h
$(compiler) -c numbers.cpp $(standlib)
我错过了什么?感谢您的任何意见或帮助!
** 更新 **
我发现我可以很好地执行我的程序,只要它运行在与 libcrypto-1_1-x64.dll 所在的 openssl 相同的目录中。
我如何构建我的程序,以便它可以在计算机上不安装 openssl 的情况下自行运行?IE:如果我想把它给一个没有在他的机器上安装 openssl 的朋友。