我正在努力将DirectSound实施到程序中,但是它需要dsound.h,而后者需要sal.h,无论出于何种原因,我都很难让g ++识别出我拥有sal.h的事实,并且它正处于开发过程中文件,甚至可以直接输入sal.h
命令,命令提示符将打开sal.h。但是当我编译时g++-3 World.cpp -c
我懂了dsound.h:13:17: sal.h: No such file or directory.
其次是由于缺少sal.h而导致dsound.h出现了数千个错误。我仅使用记事本,g ++和命令提示符,是否需要使用VC ++才能使sal.h正常工作?没有它,有没有办法使用DirectSound?
这是我正在编译的代码的开头,以防万一:
#include "WorldEntity.h"
#include "MBox.h"
#include <D3D9.h>
#include <d3dx9.h>
#include <string>
#include <sstream>
#define _USE_MATH_DEFINES
#include <math.h>
#define KEYDOWN(vk_code)((GetAsyncKeyState(vk_code) & 0x8000) ? 1 : 0)
#define KEYUP(vk_code)((GetAsyncKeyState(vk_code) & 0x8000) ? 0 : 1)
using namespace std;
World::World()
{
//Etc
这是WorldEntity.h(包含dsound.h的包含文件)的开头:
#ifndef WORLDENTITY_H
#define WORLDENTITY_H
class Entity;
class HUD;
#include "Enums.h"
#include "Object.h"
#include "Inventory.h"
#include "AI.h"
#include "Item.h"
#include "Sector.h"
#include "MBox.h"
#include "Particle.h"
#include "Sprite.h"
#include <windows.h>
#include <windows.h>
#include <mmsystem.h>
#include <mmreg.h>
#include <dsound.h>
#include <string>
#include <D3D9.h>
#include <d3dx9.h>
#include <cstdlib>
#include <ctime>
using namespace std;
enum FontIndex
{
//Etc
最佳答案
命令路径与包含路径不同。您必须将-I
标志添加到GCC,以告诉它在哪里可以找到头文件:
g++-3 -IC:\some\path World.cpp -c
关于c++ - sal.h不包括它在路径中的时间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9154848/