【发布时间】:2014-06-17 12:21:52
【问题描述】:
我正在尝试在 openSSL 中使用 Sha512 函数,但似乎无法让它工作,因为我刚开始编写代码时遇到编译器错误。我在 .cpp 文件的顶部包含 #include <openssl/sha.h>,然后在按钮事件的操作中,我只在下面添加了以下代码。
SHA512_CTX ctx;
SHA512_Init(&ctx);
//Will uncomment below in later if I get SHA512_Init to work
//SHA512_Update(&ctx, string, strlen(string));
//SHA512_Final(digest, &ctx);
我收到一个链接器错误,告诉我架构 x86_64 的未定义符号,暗示该函数不存在?
我知道 QT 5 有一个散列函数,但我仅限于 QT 4.8,所以我不能使用 QT 5+ 框架中提供的加密 sha512 散列函数。
感谢任何帮助!
使用macports安装openssl
我使用的是 Mac OS 10.9.2
制作文件
#-------------------------------------------------
#
# Project created by QtCreator 2014-06-11T20:27:49
#
#-------------------------------------------------
QT += core gui network
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = ExchangeTab
TEMPLATE = app
LIBS += -L/usr/include/openssl -openssl
INCLUDEPATH += /usr/include/openssl
SOURCES += main.cpp\
mainwindow.cpp \
httpsocket.cpp \
cloaksend.cpp \
exchange.cpp
HEADERS += mainwindow.h \
httpsocket.h \
cloaksend.h \
exchange.h
FORMS += mainwindow.ui
RESOURCES += \
AppResources.qrc
请寻找跨平台解决方案。
【问题讨论】:
-
链接器错误意味着您没有链接到正确的库。请在您的问题中包含您的 make-/cmake-file。另外,请说明您使用的是什么操作系统。
-
Mac OS 10.9.2,我将在几秒钟内包含 make 文件。
-
根据要求提供文件。感谢您的关注!
-
经过一些研究后,我认为我的问题可能是我没有在 makefile 中使用 LIBS 或 INCLUDEPATH,不知道如何为 openSSL 执行此操作或在哪里安装 openSSL。我使用 macports 安装最新的 openSSL
标签: c++ macos qt openssl sha512