我找到了一个很棒的库:Cfugue。这正是我需要的,但我不能在 linux 上使用它。他们写道,它适用于 ubuntu,但我没有成功:
g++ 说“vfw.h”不存在。据我了解,它代表“Windows 视频”。可以在linux上使用CFugue吗?
(我假设您正在尝试使用 CMake 构建库,对吗?)
该标题与 Wine 一起提供。具体来说就是Wine的开发包。在大多数 Linux 发行版上,它通常被称为“wine-dev”或“wine-devel”。
请注意,CFugue 是用 C++11 编写的,因此您需要最新的 GCC 版本。4.7 应该工作,4.6 可能工作,但 4.5 很可能不会工作。
+IF(${CMAKE_SYSTEM_NAME} MATCHES "Linux") # Linux specific code
+ SET(CFugue_Dependencies asound)
+ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
它应该支持linux构建。
尝试
cmake < 路径到 cfugue 结帐 >
制作
然后根据结果重述您的问题。
我不知道这是否会对您有所帮助,因为我仍然无法让 cfugue 在 linux 上运行。我给开发人员发了电子邮件,问他怎么做,他发送了这些说明:
您应该看到“Linking CXX executable ../Bin/StaticLibTestAppdu”行
如果您输入命令“../Bin/StaticLibTestAppdu”,它应该会运行。
但它仍然对我不起作用。这些是make的最后几行输出,我认为这意味着ALSA有问题,但我不是专家。
/home/tom/Workspace/cfuge/CFugue_src_22Jan12/MusicNote/src/MusicNoteLib/MIDIDrivers/AlsaDriver.cpp:167:29: note: mismatched types ‘const std::fpos<_StateT>’ and ‘std::future_status’
make[2]: *** [CMakeFiles/MusicNoteLib.dir/src/MusicNoteLib/MIDIDrivers/AlsaDriver.cpp.o] Error 1
make[1]: *** [CMakeFiles/MusicNoteLib.dir/all] Error 2
make: *** [all] Error 2
如果 ALSA 是问题所在,我不会感到惊讶。我记得试图让 FreeTTS 在 linux 下的 java 中运行但没有运气,因为 ALSA 驱动程序很糟糕。我在 2008 年第一次将 ubuntu 放在我的笔记本电脑上,声音根本不起作用。我认为较新的版本可以工作,因为它们将pulseaudio设为默认值。但似乎 linux 的声音驱动程序仍然很麻烦。