- ベストアンサー
コンパイラフラグ(compiler flag)がわからない
こんにちは コンパイラフラグ(compiler flag)について教えてください。 いったいコンパイラフラグとはなんなんでしょうか? 今、OSがwin2000でVC6.0を使っています。 というのも ”error C2872: 'ofstream' : ambiguous symbol” が出てしまうのです。 調べた結果「コンパイラフラグを使う」と書いてあったのですが意味がわかりません。 よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
> 某サイトに似たようなエラーを解決するために「compiler flagをどうにかしろ。」と記載してありました。 そのサイトを示していただければ,話が早いと思うのですが。 これのことでしょうか? http://public.kitware.com/pipermail/vtkusers/2001-July/007258.html VTK_USE_ANSI_STDLIB を定義しろといってますね。 統合開発環境からコンパイラしているなら, メニューの「プロジェクト」-「設定」 「C/C++」タブを選択,カテゴリ「一般」, 「プリプロセッサの定義」に, VTK_USE_ANSI_STDLIB を加えてみてはどうでしょうか? コマンドラインからコンパイルしているなら /D オプションで。
その他の回答 (4)
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
> そうです。 やっぱり。 > 同じソースの中ではなくて違うソース同士なのですがやはりだめでしたか。。 たとえコンパイル・リンクできても正しく動く保証がありません。どちらかに揃えてください。
補足
fstreamとfstream.hをひとつに統一しましたがエラーが同じエラーがでてしまいました。xx
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
<fstream> と <fstream.h> とを混ぜて使ってはいませんか? たとえば以下のコードで同様のエラーが出力されます。 #include <fstream> #include <fstream.h> using namespace std; int main() { ofstream stream; return 0; }
補足
そうです。 しかし、同じソースの中ではなくて違うソース同士なのですがやはりだめでしたか。。 今手元にソースがないために実行できませんが手に入りしだいやってみようと思います。 ありがとうございます。
- blue_murder
- ベストアンサー率34% (54/157)
こんにちは。 エラーの内容は、あいまいなシンボルです。と 言われていますが、ofstreamはC++のofstreamとして 使っているのでしょうか?
補足
実はVTKというビジュアリゼーションツールキットをつかっており、自分の書いたVTKソースをあるCGソフトと互換性を持たせようとしてそのソースとビルドさせてるときに出ました。 おそらくVTKだとおもいますが(今ソースが手元にないため。。申し訳ありません。)某サイトに似たようなエラーを解決するために「compiler flagをどうにかしろ。」と記載してありました。
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
そのエラーを起こす'最小'のコードを示してください。
補足
これでいいですか?違ってたらすみません。 ------------------------------------------- vtkMyTorus3.cpp C:\For Graduate\thesis\3-3 slice datamaker\hfp_gl\vtkWindowToImageFilter.h(63):error C2872:'ostream':ambiguous symbol C:\For Graduate\thesis\3-3 slice datamaker\hfp_gl\vtkImageWriter.h(66):error C2872:'ostream':ambiguous symbol . . . ------------------------------------------- 上のような感じでエラーがでますがどうでしょうか。 お手数おかけします。
お礼
できました。 ただ、新しいエラーがでしまいました。ひとつだけなのですが 「C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\ostream(362) : fatal error C1076: compiler limit : internal heap limit reached; use /Zm to specify a higher limit」 とでました。
補足
ズバリそうです! わかりました。 早速やってみます。ただ、ソースが手元にないために週明けになってしまいますので結果はおって連絡させてください。 ありがとうございます。