我已经从Mega-Nerd网站安装了sndfile。安装后我尝试使用此方法将其添加到代码块中:
How do I link to a library with Code::Blocks?
程序仍然没有看到库中定义的方法给我错误:
C:\ Users \ Blanka \ Desktop \ asdasdasd \ main.c | 13 |未定义引用`sf_open' | ||错误:ld返回1退出状态|
我正在提供库的路径,给出编译标志并手动粘贴项目文件夹中的头文件,没有任何帮助。问题是它会从sndfile.h
标题中看到其他函数/变量,例如SF_INFO
和SF_FORMAT_WAVE
。
我已成功在Ubuntu上安装库,但我现在需要在Windows上安装它。
答案 0 :(得分:0)
尝试使用visual studio。 snffile windows安装程序只是放了&libffndfile-1.lib'进入dest,但coodblocks需要.a链接为mingw。
答案 1 :(得分:0)
好消息是try {
val document = withContext(Dispatchers.IO) {
JSoup.connect("https://example.org/document").get()
}
println("Received document $it")
} catch (e: Exception) {
Log.e("Failed to fetch the document")
}
和SF_INFO
被识别,因此这意味着正确读取了头文件。我看到您已将标头复制到您的项目中,但是此answer中详细介绍了建议的正确方法。
我确认您可以将SF_FORMAT_WAVE
个文件链接到Code :: Blocks,并且我想您已经正确地做到了:
我在各个论坛上看到的一个常见错误,也是我犯的一个错误,是下载了64位版本的libsndfile而不是32位版本。 Code :: Blocks通常是用mingw下载的,其中包括32位GCC编译,并且大多数新手都不知道。
因此,考虑到所有链接都正确,建议您确认编译器为32位(或64位),然后下载32位(或64位)的libsndfile版本。