This questionは、穴でポリゴンを三角形分割する最良の方法はShewchuk's Triangle libraryを使用することを提案していますが、Mac OSXでコンパイルできません。これは、しばらくの間、回避されている非常に人気のプログラムであるため、コンパイルすることは比較的容易である必要があり、私はこれは私が得ているエラーであるC.Shewchukの三角形プログラムのOSXでC浮動小数点演算をコンパイル
とちょうど経験の浅いです:
$ make
cc -O -DLINUX -I/usr/X11R6/include -L/usr/X11R6/lib -o ./triangle ./triangle.c -lm
Undefined symbols:
"__FPU_SETCW", referenced from:
_exactinit in ccrEJvxc.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make: *** [triangle] Error 1
私は特定のフラグ(すなわち#define LINUX
など)をコメントアウトしようとしていますが、それぞれの組み合わせに対して異なるセットのエラーが発生します。
誰かがステップバイステップでMacでこのプログラムをコンパイルする(そして、おそらく呼び出す)方法を教えてくれますか?
私が思い起こすように、三角形の厳密な算術アルゴリズムは、浮動小数点制御ワードの非常に特別な処理を必要とします。 '__FPU_SETCW'シンボルは、8087 FPUの使用を示唆しています。私はコードが比較的単純なCコード(それはC++ではありません)と考えています。これがあなたの唯一のブロックでないなら、私は驚くでしょう。私はFP演算(丸め制御、アンダーフロー制御、例外マスクなど)を制御する手段を見つけるために、Mac Cコンパイラのドキュメントを参照することをお勧めします。 –
'xmmintrin.h'に必要なオプションがあります。あなたは8087 setcwからSSEに相当するものにマップする必要があります。明らかにSSEを無効にして8087をMac上で使用することはできますが、私にとっては正しいアプローチのようには思えません。 –
私は 'xmmintrin.h'を見ていますが、' __FPU_SETCW'や 'FPU'の記述はまったく含まれていません。私はいくつかの行を追加しなければならないと言っていますか? – dsg