我创建了一个非常简单的使用libsodium的Qt项目。 (我可以创建一个相同的项目,并使用Visual Studio 2010/2013很好地构建。)但是Qt Creator无法构建:
main.obj:-1:错误:LNK2019:未解析的外部符号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位)
libsodium:https://download.libsodium.org/libsodium/releases/libsodium-1.0.2-msvc.zip
答案 0 :(得分:1)
事实上,libsodium
是一个用纯C编写的库。
这意味着如果要将其导入C ++项目,则必须添加extern "C"
标识符。
所以你应该包括这样的头文件:
#ifdef __cplusplus
extern "C"{
#endif
#include <sodium.h>
#ifdef __cplusplus
}