2017-01-10 5 views
-2

はzipアーカイブは、私はMacBook Proの実行中のOS X 10.11.6を持ってここにhttps://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=2811996年のMacで古いANSI Cコードを開いて使用するにはどうすればよいですか?私は1996年 からGSM音声符号化規格で供給されるANSI Cコードを使用する必要がユニプロジェクトの

見つけることができます。

打ち鳴らすを使用して、端末にイ​​ンストールXcodeのとの/ Cディレクトリ(メインディレクトリ)内のすべての異なるファイルをコンパイルしようとしている:

In file included from dtx.c:37: 
./mathhalf.h:75:11: warning: incompatible redeclaration of library function 'round' [-Wincompatible-library-redeclaration] 
Shortword round(Longword L_var1);  /* 1 ops */ 

I:それは次のように複数のエラーを与える

clang dtx.c err_conc.c globdefs.c gsm_hr.c homing.c host.c mathdp31.c mathhalf.c sp_dec.c sp_enc.c sp_frm.c SP_rom.c sp_sfrm.c utils.c vad.c male.inp -o GSMHR 

これは、今まで定義されていない関数が定義されている新しいコンパイラが原因であると仮定します。

とにかく、このコードを使用する最も簡単な方法は何ですか?

+1

'-std = c89'オプションは何とか失敗しましたか? – StoryTeller

+0

私が似たような仕事をしたとき、私は "sed"を使って、ダウンロードしたファイル内のすべての競合する機能の名前を変更しました。 –

答えて

-2

POSIX(およびその他の標準化団体)は、浮動小数点型を受け取り、返すC関数roundを定義しています。 mathhalf.hファイルで宣言されていると思われる関数roundは、おそらくmathhalf.cファイルに実装されており、の整数型(32ビットと16ビット)を返します。この関数は、コンパイラに付属のroundと衝突します。

この機能がmathhalf.cに実装されていると仮定すると、.cファイルと.hファイルの両方に、たとえばintRoundに名前を変更するだけです。

+0

1996 mac POSIXですか? – user3528438

+0

@ user3528438いいえ、しかし、201x MacOS Xとclangはあります。 1996年のMacについて誰も話していない。 – tofro

+0

はいすべてのファイルを検索し、すべてをrounded()に変更しました。私はまた、それにコマンドライン引数を渡す方法と混同されましたが、私は今それを理解しました。ありがとうございました – Henrik

関連する問題