2

我在 Qt 应用程序中使用libvcard 。我按照自述文件中的说明在 Ubuntu 上安装了该库(即我在项目文件上运行了qmake, make, sudo make install),但是当我尝试从网站运行此代码时,出现了一堆错误。

   #include <QtCore/QCoreApplication>
#include <vcard/vcard.h>
#include <QtDebug>

int main(int argc, char *argv[])
{
    // Now we can parse it...
    QList<vCard> vcards = vCard::fromFile("/home/ubuntu/Desktop/Contacts.vcf");

    // ...and then we can use it.
    if (!vcards.isEmpty())
    {
        vCard vcard = vcards.takeFirst();

        vCardProperty name_prop = vcard.property(VC_NAME);
        if (name_prop.isValid())
        {
            QStringList values = name_prop.values();

            QString firstname = values.at(vCardProperty::Firstname);
            QString lastname = values.at(vCardProperty::Lastname);

            qDebug()<<firstname<<" "<<lastname;
        }

    }

}

错误

在主函数中:

/home/ubuntu/Workspace/Qt/cVCardTest-build-desktop-Desktop_Qt_4_8_1_for_GCC__Qt_SDK__Debug/../cVCardTest/main.cpp:8:

错误:未定义对 `vCard::fromFile(QString const&) /home/ubuntu/Workspace/Qt/cVCardTest-build-desktop-Desktop_Qt_4_8_1_for_GCC__Qt_SDK__Debug/../cVCardTest/main.cpp:15 的引用:

错误:未定义对vCard::property(QString const&, QList<vCardParam> const&, bool) const /home/ubuntu/Workspace/Qt/cVCardTest-build-desktop-Desktop_Qt_4_8_1_for_GCC__Qt_SDK__Debug/../cVCardTest/main.cpp:15: error: undefined reference tovCard::property(QString const&, QList const&, bool) const' ' 的引用

我不确定我做错了什么。我应该在项目文件中添加一些东西以使用这个库吗?

4

1 回答 1

2

vcard 是外部库,因此链接器必须知道在哪里查找使用过的符号。您需要与 vcard 库链接。在您的 .pro 文件中添加

LIBS += vcard
于 2012-06-12T22:17:23.760 回答