エンジニアのソフトウェア的愛情

または私は如何にして心配するのを止めてプログラムを・愛する・ようになったか

googletestはPOSIX規格上で動作させることが期待されている

(googletestについて知りたい方はこちらのエントリでまとめています)

このあいだ書いたように、googletest 1.4.0では、Cygwin上で-ansiオプションをつけてコンパイルするとエラーになります。
よくわからないので中の人に訊いてみました。というか、Google グループで質問したら中の人が答えてくださいました。

Google Test is designed to conform to the POSIX standard on UNIX-like systems. It will likely not work when pure ANSI conformance is expected.
I suggest compiling it without the -ansi option.

Google Testは、UNIXのようなシステムの上のPOSIX規格に従うように設計されています。 純粋なANSI順応が予想されるとき、それはおそらく働かないでしょう。
私は、-ansiオプションなしでそれをコンパイルすることを提案します
(by エキサイト翻訳)


ということで。POSIXの仕様を前提にしているからANSIの仕様上ではちゃんと動かないかもしれないとのこと。もうこれは適用範囲がそうだと納得するしかないでしょう。

一応、コードを調べてみて、エラーになるコードはライブラリを構築するときにしか使われていないので、インストール後にエラーになるgtest/internal/gtest-port.hの中の当該コードを削除するなりコメントアウトするなりすると-ansiオプションを付けてもコンパイルできることは確認しました。

もっとも、1.4.0ではそれでコンパイルできるようになるというだけで、今後もそれで動作するかはわからないわけで、オプションつけないと割り切った方がよさそうです。




一応、質疑応答の様子。わたしの怪しい英文は気にしないでください(汗)。