【问题标题】:Errors while trying to include libvcard in Qt Application尝试在 Qt 应用程序中包含 libvcard 时出错
【发布时间】:2023-04-03 07:10:01
【问题描述】:

我在 Qt 应用程序中使用libvcard。我按照自述文件中的说明在 Ubuntu 上安装了库(即我在项目文件上运行了qmakemakesudo 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;
        }

    }

}

错误

在main函数中:

/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' '

我不确定我做错了什么。 我是否应该在项目文件中添加一些内容才能使用这个库?

【问题讨论】:

  • 你必须链接到 vcard 库
  • 这不是自动发生的吗?我该怎么办?
  • 不,它没有。可能像你的 pro 文件中的 LIBS += vcard 这样的东西应该做的事情
  • 你是对的。我需要链接库,这个doc.qt.nokia.com/qtcreator-2.3/… 解释了如何。请把它写成答案,我会接受的:)

标签: ubuntu qt4 vcf-vcard


【解决方案1】:

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

LIBS += vcard

【讨论】:

    猜你喜欢
    • 2011-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多