0

私は、fmodチュートリアルからほぼ逐語的にコピーされた次のコードブロックを持っていますが、何とも競合しないように変数名を少し変更しています。私のコードは、fmodステートメントがなくても正常にコンパイルされます。このFMOD_RESULT fm_result行を入力するとerror C4430: missing type specifier - int assumed. Note: C++ does not support default-int、VS2010を使用しているというエラーが表示されます。リンカーがないか、fmodコードがないとインクルードファイルのエラーが発生します。エラーはその行に関するものです。同じ行でfm_result = FMOD::System_Create(&fm_system);もエラーが発生します。error C2371: 'fm_result' : redefinition; different basic types

FMOD_RESULT fm_result;
FMOD::System *fm_system;
fm_result = FMOD::System_Create(&fm_system);        // Create the main system object.

if(fm_result != FMOD_OK){
    printf("FMOD error! (%d) %s\n", fm_result, FMOD_ErrorString(fm_result));
    exit(-1);
}
fm_result = fm_system->init(100, FMOD_INIT_NORMAL, 0);  // Initialize FMOD.
if(fm_result != FMOD_OK){
    printf("FMOD error! (%d) %s\n", fm_result, FMOD_ErrorString(fm_result));
    exit(-1);
}
4

2 に答える 2

1

わかりません、それはVisual Studioに関するものか、あなたが私たちに伝えていない何かであるに違いありません...以下はGCC4.6で私と一緒にうまくコンパイルされます:

#include <fmod.hpp>
#include <fmod_errors.h>
#include <cstdio>
#include <cstdlib>

int main()
{
  FMOD_RESULT fm_result;
  FMOD::System *fm_system;
  fm_result = FMOD::System_Create(&fm_system);        // Create the main system object.

  if(fm_result != FMOD_OK)
  {
    printf("FMOD error! (%d) %s\n", fm_result, FMOD_ErrorString(fm_result));
    exit(-1);
  }

  fm_result = fm_system->init(100, FMOD_INIT_NORMAL, 0);  // Initialize FMOD.

  if(fm_result != FMOD_OK)
  {
    printf("FMOD error! (%d) %s\n", fm_result, FMOD_ErrorString(fm_result));
    exit(-1);
  }
}

私は次のようにコンパイラを抽出fmodapi43405linux.tar.gz/tmp/て呼び出しました。

g++ -W -Wall -Wextra -s -O3 -march=native -o prog prog.cpp \
    -I /tmp/fmodapi43405linux/api/inc/ \
    /tmp/fmodapi43405linux/api/lib/libfmodex.so

を追加しても機能します-std=c++0x

于 2011-07-04T02:08:48.253 に答える
0

エラーについて:エラーC4430:型指定子がありません-intと見なされます。注:C++はdefault-intをサポートしていません

FMODを最初に含める前にFMOD_RESULTblahを置くと、これが得られます。そうでないことを確認できますか?おそらく、fmod.hをインクルードする前にFMOD_RESULTを使用しているインクルードチェーンがあります。

于 2011-07-05T00:46:44.607 に答える