【发布时间】:2015-04-10 08:41:30
【问题描述】:
我创建了一个使用 libsodium 的非常简单的 Qt 项目。 (我可以创建一个相同的项目并使用 Visual Studio 2010/2013 构建良好。)但 Qt Creator 无法构建:
main.obj:-1: error: LNK2019: unresolved external symbol sodium_init 在 main 函数中引用
这是我的项目:
testSodium.pro:
QT += core
QT -= gui
TARGET = testSodium
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
DEFINES += SODIUM_STATIC
INCLUDEPATH += F:/libsodium-1.0.2-msvc/include
LIBS += -LF:/libsodium-1.0.2-msvc/Win32/Release/v120/static/ -llibsodium
SOURCES += main.cpp
main.cpp:
#include <sodium.h>
int main(int argc, char *argv[])
{
if (sodium_init() == -1) {
return 1;
}
}
谁能帮帮我?
(我使用的是 Qt Creator 3.3.1、Qt 5.4.1 MSVC 2010 32 位)
库钠:https://download.libsodium.org/libsodium/releases/libsodium-1.0.2-msvc.zip
【问题讨论】:
-
你在这个目录中实际构建了 libsodium.a 吗?尝试在 pro 文件中更改为 -llibsodium.a
-
我正在使用 MSVC。 .a 是用于 mingw 或 linux 的,对吗?
-
你的 dll 的实际名称是什么?
-
@aviit 我刚刚构建它没有任何问题,使用 Qt Creator 3.1.1,Qt 5.3.0 MSVC 2010 32 位。 (imgur.com/RBMjmvC)
-
@aviit Qt 版本无关紧要。相反,编译器版本才是重点。请确保您的 Qt 和 libsodium 库是使用相同版本的编译器(MSVC 2010 或 2013)构建的。例如,如果您使用 MSVC2013 编译 Qt-MSVC2013 和 libsodium-MSVC2010,可能会出现不兼容(我猜是因为它可以在我的机器上运行)
标签: c++ windows visual-studio-2010 qt libsodium