1

「c」には優れたコードベースがあります。現在、すべての新しいモジュールでC++に移行しています。古いcコードベースでいくつかのc++クラスを使用する場合があります。個別に、両方が機能します。つまり、c ++モジュールとcモジュールだけが機能し、目的のo\pを提供します。

それらを混ぜると、つまりAcでc ++クラスを呼び出すと、古いコードに関連する大量のエラーがスローされます。

makefile.amでは、以前はオプションcc = gccがありましたが、いくつかのエラーがスローされた後、cc =g++に変更しました。最後にmakeが付いたmakefile.amは、libを作成します。libx.aとしましょう。makefile.amには、以前のさまざまなソースファイル(Ac、xc、yc ...)が含まれています。

新しいg++コンパイラを使用していると想定して、最初はAc、xcでエラーを修正しました。これで、xcでエラーが発生し始めました。このように、さまざまなソースファイルがあります。

それらすべてを修正するのは非常に面倒です。iamには、これらのエラーに関連するいくつかのコンパイラフラグオプションがありません。現在、これらのエラーの大部分は型キャストエラーであり、static_castなどを使用して変換しました。これとは別に、その他のエラーはほとんどありません。ただし、このコードはcで機能するコードであり、makefileを混合して変更するだけで、これらのエラーがスローされます。

Q:1.これらのエラーを取り除く方法は?2.最小限の労力で作業を継続するために使用する必要のあるコンパイラフラグはありますか?3.これらのプロセスでiamが間違っていることはありますか?4. makefile.amに変更はありますか?

これに関するどんな助けもありがたいです。Qが不明な場合は、お知らせください。

注:autoreconf、configure、makeを使用してアプリを実行します。

よろしく、サントッシュ

4

1 に答える 1

3

makeは、ファイルの拡張子に応じて、またはどちら$CC$(CXX)を使用し、両方を同時に使用できます。たとえば、で終わるファイルは、で終わるファイル、で終わるファイル*.cppはでコンパイルされます。したがって、コードをC ++としてコンパイルするように適切に変更しない限り、を設定したり、グローバルに設定したりする必要はありません。$(CXX)*.c$(CC)ccCCg++C

于 2012-07-08T07:40:17.190 に答える