This question already has answers here:
What is an undefined reference/unresolved external symbol error and how do I fix it?

(35个答案)


4年前关闭。




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



这是我的项目:

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

最佳答案

实际上,libsodium是用纯C语言编写的库。

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

因此,您应该包括这样的头文件:

#ifdef __cplusplus
extern "C"{
#endif

#include <sodium.h>

#ifdef __cplusplus
}
#endif

关于c++ - 使用libsodium构建一个简单的项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29556984/

10-11 16:52