我想使用webrtc的VAD模块,在Cygwin上编译。 Cygwin为此提供了一些软件包:packagesCygwin使用libwebrtc-audio-processing-devel编译程序
我安装了选定的软件包,并想弄清楚如何编译内容。我已经包括了我在下面的尝试。我正在采取正确的方法吗?还是应该以不同的方式继续下去?当谈到c代码时,我是一个业余爱好者。
的main.cpp
int main() {
AudioProcessing* apm;
}
编译
$ g++ main.cpp
main.cpp: In function ‘int main()’:
main.cpp:3:2: error: ‘AudioProcessing’ was not declared in this scope
AudioProcessing* apm;
^
main.cpp:3:19: error: ‘apm’ was not declared in this scope
AudioProcessing* apm;
所以我需要包括一些标题和链接一个DLL提供我猜的实施。
$ ls /usr/include/webrtc_audio_processing/webrtc/
base/ common_types.h system_wrappers/
common.h modules/ typedefs.h
$ find/-name "*rtc*dll"
/bin/cygsmartcols-1.dll
/bin/cygwebrtc_audio_processing-1.dll
/usr/bin/cygsmartcols-1.dll
/usr/bin/cygwebrtc_audio_processing-1.dll
我发现含audio_processing.h
的main.cpp
#include "audio_processing.h"
int main() {
AudioProcessing* apm;
}
类AudioProcessing头编译
$ g++ main.cpp -o main -L/bin/ -lcygwebrtc_audio_processing-1 -I/usr/include/webrtc_audio_processing/webrtc/modules/audio_processing/include/
In file included from main.cpp:1:0:
/usr/include/webrtc_audio_processing/webrtc/modules/audio_processing/include/audio_processing.h:22:35: fatal error: webrtc/base/arraysize.h: No such file or directory
compilation terminated.
抱歉,如果这似乎是显而易见的,我们都必须从某处开始。讨论
结果:
下导致使用在Cygwin libwertc音频处理-devel的一个简单的程序编译成功。
$ cat main.cpp
#include "webrtc/modules/audio_processing/include/audio_processing.h"
int main() {
webrtc::AudioProcessing* apm;
}
$ g++ main.cpp -o main -I/usr/include/webrtc_audio_processing/ -DWEBRTC_WIN -std=gnu++11 -L/bin/ -lcygwebrtc_audio_processing-1
尝试用'-lwebrtc_audio_processing' – matzeri
@matzeri 这没”不要这样做。 输出: '$ g ++ main.cpp -o main -L/bin/-webrtc_audio_processing -I/usr/include/webrtc_audio_processing/webrtc/modules/audio_processing/include/ 从main.cpp包含的文件中:1:0 : /usr/include/webrtc_audio_processing/webrtc/modules/audio_processing/include/audio_processing.h:22:35:致命错误:webrtc/base/arraysize.h:没有这样的文件或目录 编译已终止。“ – Modf