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:
main.cpp:
谁能帮我?
(我正在使用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
(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