【问题标题】:add libsndfile to a Qt project将 libsndfile 添加到 Qt 项目
【发布时间】:2014-02-27 00:02:20
【问题描述】:

我想在 Qt 项目中使用 libsndfile 库,然后我需要链接它,但我总是得到一个错误:

    main.cpp:129: error : undefined reference to `sf_open'
    main.cpp:137: error : undefined reference to `sf_write_short'

我尝试将这些行添加到我的 .pro 中

1) INCLUDEPATH += C:/libsndfile/include LIBS += -LC:/libsndfile/lib/libsndfile-1.lib

2) INCLUDEPATH += C:/libsndfile/include/ LIBS += C:/libsndfile/lib/libsndfile-1.lib

3) win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../../../../libsndfile/lib/ -llibsndfile-1

INCLUDEPATH += $$PWD/../../../../../../libsndfile/include DEPENDPATH += $$PWD/../../../../../../libsndfile/include

win32:CONFIG(release, debug|release): PRE_TARGETDEPS += $$PWD/../../../../../../libsndfile/lib/libsndfile-1.lib

您能帮我正确链接 sndfile 库吗?

【问题讨论】:

    标签: c++ windows qt libsndfile


    【解决方案1】:
    LIBS+= -L<PATH TO DIR WITH DLL> -lsndfile-1
    

    例如:

    LIBS+= -LC:/sndfile -lsndfile-1
    

    当然,库本身必须使用您使用的编译器(mingw?)进行编译。不要尝试将 VS 编译的库与 MinGW 一起使用,反之亦然。

    【讨论】:

    • 我认为这就是我正在寻找的答案。我怎么知道一个库是在哪里编译的?我正在尝试使用第三方库,我尝试了几乎所有链接到 .lib、.dll 的组合,但仍然出现未定义的引用错误。
    猜你喜欢
    • 2010-10-14
    • 2017-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-17
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多