我有一个使用Visual Studio2010编译良好的c++ Windows应用程序。当g++处理xaudio2.h o2.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 o2.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发布于 2012-04-09 00:22:55
找到了一个有效的窍门。像来自C语言一样包含XAudio2,而不是C++。
#undef __cplusplus
#include <xaudio2.h>
#define __cplusplus发布于 2012-05-17 09:44:28
这可能有助于解释它,GCC Concatenation。
https://stackoverflow.com/questions/9593013
复制相似问题