使用g++4.6.1,我在尝试包含xaudio2.h时遇到了许多C++编译错误
Using g++ 4.6.1 I get many C++ compile errors when trying to include xaudio2.h
我有一个c++Windows应用程序,它可以使用Visual Studio 2010进行良好编译。我还想拥有使用MinGW(在Windows7-64 PC上)编译它的能力。当g++处理xaudio2.h头文件时,我会得到下面列出的错误。除了手动破解包含文件外,还有人知道修复程序吗。
SDKS/DX/Include/xaudio2.h:51:1: error: pasting "5a508685" and "-" does not give
a valid preprocessing token
SDKS/DX/Include/xaudio2.h:51:1: error: pasting "-" and "a254" does not give a va
lid preprocessing token
SDKS/DX/Include/xaudio2.h:51:1: error: pasting "a254" and "-" does not give a va
lid preprocessing token
SDKS/DX/Include/xaudio2.h:51:1: error: pasting "-" and "4fba" does not give a va
lid preprocessing token
SDKS/DX/Include/xaudio2.h:51:1: error: pasting "4fba" and "-" does not give a va
lid preprocessing token
SDKS/DX/Include/xaudio2.h:51:1: error: pasting "-" and "9b" does not give a vali
d preprocessing token
SDKS/DX/Include/xaudio2.h:51:1: error: pasting "9b82" and "-" does not give a va
lid preprocessing token
SDKS/DX/Include/xaudio2.h:51:1: error: pasting "-" and "9a" does not give a vali
d preprocessing token
SDKS/DX/Include/xaudio2.h:52:1: error: pasting "db05ea35" and "-" does not give
a valid preprocessing token
SDKS/DX/Include/xaudio2.h:52:1: error: pasting "-" and "0329" does not give a va
lid preprocessing token
SDKS/DX/Include/xaudio2.h:52:1: error: pasting "0329" and "-" does not give a va
lid preprocessing token
SDKS/DX/Include/xaudio2.h:52:1: error: pasting "-" and "4d4b" does not give a va
lid preprocessing token
SDKS/DX/Include/xaudio2.h:52:1: error: pasting "4d4b" and "-" does not give a va
lid preprocessing token
SDKS/DX/Include/xaudio2.h:52:1: error: pasting "-" and "a5" does not give a vali
d preprocessing token
SDKS/DX/Include/xaudio2.h:52:1: error: pasting "a53a" and "-" does not give a va
lid preprocessing token
SDKS/DX/Include/xaudio2.h:52:1: error: pasting "-" and "6d" does not give a vali
d preprocessing token
SDKS/DX/Include/xaudio2.h:53:1: error: pasting "8bcf1f58" and "-" does not give
a valid preprocessing token
SDKS/DX/Include/xaudio2.h:53:1: error: pasting "-" and "9fe7" does not give a va
lid preprocessing token
SDKS/DX/Include/xaudio2.h:53:1: error: pasting "9fe7" and "-" does not give a va
lid preprocessing token
SDKS/DX/Include/xaudio2.h:53:1: error: pasting "-" and "4583" does not give a va
lid preprocessing token
SDKS/DX/Include/xaudio2.h:53:1: error: pasting "4583" and "-" does not give a va
lid preprocessing token
SDKS/DX/Include/xaudio2.h:53:1: error: pasting "-" and "8a" does not give a vali
d preprocessing token
SDKS/DX/Include/xaudio2.h:53:1: error: pasting "8ac6" and "-" does not give a va
lid preprocessing token
SDKS/DX/Include/xaudio2.h:53:1: error: pasting "-" and "e2" does not give a vali
d preprocessing token
In file included from common/system.h:71:0,
from game.cpp:1:
SDKS/DX/Include/xaudio2.h:65:69: fatal error: sal.h: No such file or directory
compilation terminated.
以下是xaudio2.h:中的行
DEFINE_CLSID(XAudio2, 5a508685, a254, 4fba, 9b, 82, 9a, 24, b0, 03, 06, af);
DEFINE_CLSID(XAudio2_Debug, db05ea35, 0329, 4d4b, a5, 3a, 6d, ea, d0, 3d, 38, 52);
DEFINE_IID(IXAudio2, 8bcf1f58, 9fe7, 4583, 8a, c6, e2, ad, c4, 65, c8, bb);
看起来定义在comdecl.h中为:
#define DEFINE_CLSID(className, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
class DECLSPEC_UUID_WRAPPER(l##-##w1##-##w2##-##b1##b2##-##b3##b4##b5##b6##b7##b8) className;
EXTERN_C const GUID CLSID_##className
#define DEFINE_IID(interfaceName, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
interface DECLSPEC_UUID_WRAPPER(l##-##w1##-##w2##-##b1##b2##-##b3##b4##b5##b6##b7##b8) interfaceName;
EXTERN_C const GUID IID_##interfaceName
找到了一个有效的技巧。包括XAudio2,就好像来自C,而不是C++。
#undef __cplusplus
#include <xaudio2.h>
#define __cplusplus
这可能有助于解释GCC连接。
相关文章:
- 编译包含字符串的代码时遇到问题
- 遇到新行时,有没有办法停止istream_iterator
- 在混合代码库中将C转换为C++时出现许多包含错误
- 在使用GPU支持编译Tensorflow时,会遇到CUDA_TOOLKIT_PATH未绑定变量
- 如何在C++向量中奇数元素前面加上值-1,我在使用insert函数时遇到了问题
- 在 for 循环中查找问题时遇到困难
- 创建结构的数组时遇到分段错误
- 代码在我的计算机上运行良好,但是在将其提交给coursera时遇到未知的信号11问题
- 为什么我遇到分段错误?
- 在顶点着色器中使用 OpenGl 的未声明标识符,我在顶点着色器中绘制三角形时遇到问题
- 这些是什么样的错误?即使我不在 Linux 上工作,我也遇到了 Linux 错误
- 函数在许多数字上转换为基数 1 时减去 2?
- 为什么我在尝试模板时遇到视觉工作室C++错误
- 如何从文本文件中读取数值,直到遇到字符类型?
- 从其他类访问类时遇到问题
- 我已经阅读了很多关于 2d 数组的信息,但我在作业中使用它时遇到了麻烦
- 打印问题.我在数组中打印值时遇到一些问题
- CPU 瓶颈;处理具有许多非静态对象的 3D 场景渲染的简单方法
- 我的代码运行良好,但现在当尝试将其制作成模板时,我遇到了许多看似无关的错误。这是怎么回事?
- 使用g++4.6.1,我在尝试包含xaudio2.h时遇到了许多C++编译错误