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

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

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 に答える