0

我是一名 Pascal 程序员,但我需要为 Windows 编译一个 C 库。

该库是espeak(一个语音合成器),它使用portaudio库来访问音频端口。我已经将 C 头文件翻译成 Pascal,并且在 Linux 中使用带有 Pascal 头文件的库没有问题。此外,在 Linux 中编译该库也没有问题(一些 Make,......并且已经完成......)。

但我也想在 Windows 上使用它……所以我安装了 Microsoft Visual Studio 并加载了项目。

当我编译 lib 时,我收到如下消息:

wavegen.obj:错误 LNK2019:函数“int __cdecl WavegenInitSound(void)”中引用的未解析外部符号 _Pa_Initialize (?WavegenInitSound@@YAHXZ)

似乎找不到该库的链接。我如何声明该库的内容和位置(portaudio.dll)。

在代码中有 #include "portaudio.h" 所以我认为该函数的链接已定义。但我找不到它在哪里定义使用哪个库(portaudio.dll)。

PS:我不会说很好的C所以一些代码是非常受欢迎的......

非常感谢

4

1 回答 1

0

您需要确保您链接到的 portaudio 版本与portaaudio.heSpeak 编译到的版本相同。

eSpeak 源包含用于 portaudio 的 v18 和 v19 标头。它还有一个portaudio.hwhich IIRC 是 v18 标头的副本。

于 2013-05-26T00:31:08.237 回答