我正在尝试在 Qt5 中对
QString
进行 Base64 编码。但是,我在 identifier not found
线上收到错误提示
QString b64string = base64_encode(src);
#include <QCoreApplication>
#include <QByteArray>
#include <QBitArray>
#include <QString>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QString src = "Hello";
QString b64string = base64_encode(src);
qDebug() << "Encoded string is" << b64string;
return a.exec();
}
QString base64_encode(QString string){
QByteArray ba;
ba.append(string);
return ba.toBase64();
}
为什么会出现错误?有人可以指出我的错误吗?
您面临的问题就是Mark Ransom所说的,因此只需更改函数的顺序或在文件开头编写函数原型即可解决您的问题。但当我想要 base64 时,我通常会这样做:
QString src = "Hello";
src.toUtf8().toBase64();
所以你不必编写自定义函数。
它找不到的标识符是
base64_encode
。这是因为它直到文件的后面才出现。防止此错误的常用方法是将函数原型放在文件的开头或单独的包含头中:
QString base64_encode(QString string);
您也可以重新排列代码,以便任何取决于定义的内容都放在最后,即将
main
移到最后。