我正在努力将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/

10-11 18:02