2

我创建了一个使用 libsodium 的非常简单的 Qt 项目。(我可以创建一个相同的项目并使用 Visual Studio 2010/2013 构建良好。)但 Qt Creator 无法构建:

main.obj:-1:错误:LNK2019:函数 main 中引用的未解析的外部符号 sodium_init

这是我的项目:

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

主.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

4

1 回答 1

2

实际上,libsodium是一个用纯 C 编写的库。

这意味着如果要将其导入 C++ 项目,则必须添加extern "C"标识符。

所以你应该像这样包含头文件:

#ifdef __cplusplus
extern "C"{
#endif

#include <sodium.h>

#ifdef __cplusplus
}
#endif
于 2016-01-30T13:33:28.363 回答