【问题标题】:libsndfile Windows 8libsndfile Windows 8
【发布时间】:2014-05-12 16:57:41
【问题描述】:

我使用 libsndfile 编写了一个小程序。我让它在 os x 和 linux 上运行。最后一步是窗户。

我正在尝试使用 mingw 进行编译。我从http://mega-nerd.com 下载了 libsndfile 安装程序。阅读libsndfile Windows 7后,我将头文件放在了mingw的include文件夹中,这解决了第一个明显的错误。

之后我尝试了其他帖子中提到的所有内容:将 .dll 移至 mingw 的 bin 文件夹,将 .lib-、.def-文件移至 lib 文件夹,将 .lib 重命名为 .a。作为最后一次尝试,我在 mingw 文件夹中创建了 /usr/local/bin 和 /usr/local/lib 并复制了那里的所有内容。

对于不同的函数sf_*,我的错误属于以下类型:

undefined reference to `sf_open'

所以我认为即使在以某种方式复制和重命名之后,也找不到该库。还有什么我可以尝试的吗?

谢谢。


是的,已经存在一个非常相似的问题。但是我不喜欢发布另一个问题作为答案,而且我没有足够的声誉来写评论来询问解决这个问题的细节,所以我打开了另一个问题。希望没事。

【问题讨论】:

    标签: c dll


    【解决方案1】:

    如果找不到该库,您会收到一条错误消息,并且ld 会死掉。相反,你得到的是对 libsnd 函数的未定义引用——也就是说,你从来没有链接过这个库。

    【讨论】:

    • 好的,我错过了 -lsndfile 但添加后我得到: ../ld.exe: cannot find -lsndfile collect2.exe: error: ld returned 1 exit status 所以我在我想的地方我以前呢?试图将我的库放在正确的位置。
    • 使用-L 设置链接时库文件夹。
    猜你喜欢
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    • 2021-07-23
    • 2014-08-06
    • 2016-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多