在Windows 10上使用CodeBlocks和CMake构建Qt应用程序MARSYAS

时间:2018-07-12 09:49:58

标签: qt cmake mingw codeblocks mingw-w64

我一直在尝试使用MARSYAS application在Windows 10上构建these instructions。但是,我选择的IDE通常是CodeBlocks而不是Visual Studio,我想用它代替它。我还使用MinGW而不是Microsoft编译器。我也想将其用作构建系统。

当我在Marsyas源代码目录中使用cmake-gui时,可以使用MinGW makefile配置并生成CodeBlocks项目。在此过程中,我必须添加带有Qt源代码的条目CMAKE_PREFIX_PATH。现在,这里存在问题。我可以在Qt \ 5.11.1目录中选择多个运行时的源代码。但是无论我将CMAKE_PREFIX_PATH设置为哪一个(mingw53_32,msvc2015等),生成的CodeBlocks项目内部的构建始终都会失败,并出现以下错误:

marsyas-release-0.5\src\marsyas\marsystems\AudioSource.h|74|error: 'mutex' in namespace 'std' does not name a type|
marsyas-release-0.5\src\marsyas\marsystems\AudioSource.h|75|error: 'condition_variable' in namespace 'std' does not name a type|
marsyas-release-0.5\src\marsyas\marsystems\AudioSink.h|70|error: 'mutex' in namespace 'std' does not name a type|
marsyas-release-0.5\src\marsyas\marsystems\AudioSink.h|71|error: 'condition_variable' in namespace 'std' does not name a type|

我已经尝试应用this StackOverflow question中的建议:在MinGW安装管理器中安装mingw32-pthreads-软件包并安装MinGW-W64,但到目前为止无济于事。

有人可以给我一些建议吗?非常感谢!

预先感谢, 约书亚

1 个答案:

答案 0 :(得分:0)

我已经解决了我的问题。您不能使用带有MinGW编译器(甚至不是MinGW-W64)的C ++ 11线程API来编译C ++项目,因为它们依赖UNIX pthread库来提供该API的运行时功能。但是,不幸的是,为Windows制作的pthread软件包似乎存在许多问题。无论我做什么,我都无法使用CodeBlocks成功构建。

我使用Microsoft Visual Studio构建项目,请确保在工具栏中选择“发布”目标,并在“构建”>“配置管理器”中启用安装目标。现在,我已使用Microsoft Visual C ++运行时构建了MARSYAS。我希望将来可以在具有GNU运行时的Windows上构建它,但是现在我看不到其他选择...