• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:LinuxでC++ファイルをコンパイルできない)

LinuxでC++ファイルのコンパイルができない

このQ&Aのポイント
  • Windowsで使用していたBorland C++ Compiler5.5を使って書かれたプログラムをLinuxで動かすことができません。
  • WinSCPとPuTTYを使用してソースコードをサーバーにコピーし、g++でコンパイルするとエラーが多数発生します。
  • 特に複素数の変数を定義する部分でのエラーが多く、QR分解を用いた複素数の計算・推定を行うプログラムに影響を与えています。

質問者が選んだベストアンサー

  • ベストアンサー
  • rinkun
  • ベストアンサー率44% (706/1571)
回答No.4

考えられる可能性をいくつか。 C++コードの拡張子は何ですか。きちんとC++言語として認識していますか。 GCCがC++モードでなくC言語モードで動いている可能性があります。 # C言語では当然テンプレートは使えないのでcomplex<double>は認識できない 日本語コードと改行コードは正しく変換していますか。 文字コードが間違っていると思わぬエラーになります。 Borland C++のcomplex.hは標準C++のものですか。 また現在のGCCはC++旧式(complex.h)の複素数にどこまで対応しているでしょうか。 # 今の標準C++だと #include <complex> ですし # C99のcomplex.hと認識されているとぜんぜん別物ですから

hirai2912
質問者

お礼

#include <complex.h>と書いていたのが原因だったようです。 ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • asuncion
  • ベストアンサー率33% (2127/6290)
回答No.3

>大量のエラーが出てしまいました。 こちらには、質問者さんのお手元にあるコードは見えません。 「エラーが出た」だけでは、事実上「何も言っていない」に等しいです。

すると、全ての回答が全文表示されます。
  • suzukikun
  • ベストアンサー率28% (372/1325)
回答No.2

該当のライブラリを移植する必要があるのでは? BC++にも元からついているとは思えないので、どなたかが作られているんだと思いますが。

すると、全ての回答が全文表示されます。
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

その説明ではなんとも。 ・標準関数だけ使っていればだいたい動きます。 ・ライブラリに依存するものは、そのライブラリ次第です。 ・Windows専用の関数、ライブラリは当然動きません (Win32API等) 複素数とありますが、どんな宣言したのですか?

hirai2912
質問者

補足

関数定義の部分で complex<double> calch(void);に対してerror: expected unqualified-id before ?<? token、 int mld(complex<double> y[NR]);に対してerror: ISO C++ forbids declaration of ?parameter? with no typeとerror: expected ?,? or ?...? before ?<? token といった感じです。 includeしているのはstdio.h、math.h、complex.h、time.hの4個だけです。

すると、全ての回答が全文表示されます。

関連するQ&A