[解決済み] LinuxでgoogleTestを共有ライブラリとしてセットアップする方法
質問
Debian はもう gTest のコンパイル済みパッケージを提供していません。プロジェクトのmakefileにフレームワークを統合することを推奨しています。しかし、私は自分の makefile をきれいに保ちたいと思っています。以前のバージョン (<1.6.0) のように gTest をセットアップして、ライブラリに対してリンクできるようにするにはどうしたらよいでしょうか?
どのように解決するのですか?
始める前に、以下を読み、理解していることを確認してください。 Googleからのこのノート ! このチュートリアルは gtest の使い方を簡単に説明するものですが 厄介なバグ .
1. googletestフレームワークを取得する
wget https://github.com/google/googletest/archive/release-1.8.0.tar.gz
または、以下の方法で取得します。 手 . 私はこの小さなハウツーを保守しませんので、もしあなたがそれを偶然見つけてリンクが古くなっていたら、遠慮なく編集してください。
2. googleテストの解凍とビルド
tar xf release-1.8.0.tar.gz
cd googletest-release-1.8.0
cmake -DBUILD_SHARED_LIBS=ON .
make
3.ヘッダーとライブラリをシステムにインストールします。
このステップはディストロによって異なるかもしれませんので、正しいディレクトリにヘッダーとライブラリをコピーすることを確認してください。私はこれを
Debians 元 gtest ライブラリ
がある場所を確認することで達成しました。しかし、もっと良い方法があるはずです。注意してください。
make install
は危険であり、サポートされていません。
sudo cp -a googletest/include/gtest /usr/include
sudo cp -a googlemock/gtest/libgtest_main.so googlemock/gtest/libgtest.so /usr/lib/
4. リンカのキャッシュを更新する
... そして、GNUリンカがそのライブラリを知っているかどうかをチェックします。
sudo ldconfig -v | grep gtest
このように出力された場合
libgtest.so.0 -> libgtest.so.0.0.0
libgtest_main.so.0 -> libgtest_main.so.0.0.0
であれば、すべて問題ありません。
gTestframeworkを使用する準備ができました。あなたのプロジェクトをライブラリに対してリンクすることを忘れないでください。
-lgtest
をリンカーフラグとして設定し、オプションとして、もしあなた自身のテストのメインルーチンを書かなかったならば、明示的な
-lgtest_main
フラグが必要です。
ここから先は、Googleの ドキュメント を、そして 古いドキュメント を参照し、フレームワークがどのように動作するかを学んでください。ハッピーコーディング!
編集します。 これはOS Xでも使えます! 参照 OS XでgoogleTestを正しく設定する方法"
関連
-
[解決済み】エラー。switchステートメントでcaseラベルにジャンプする
-
[解決済み】変数やフィールドがvoid宣言されている
-
[解決済み] Linuxで特定のテキストを含むすべてのファイルを検索するにはどうすればよいですか?
-
[解決済み] 文字列の単語を反復処理するにはどうすればよいですか?
-
[解決済み] プライベートメソッド、フィールド、インナークラスを持つクラスをテストするにはどうすればよいですか?
-
[解決済み] 1ビットのセット、クリア、トグルはどのように行うのですか?
-
[解決済み] Windowsにpipをインストールするにはどうしたらいいですか?
-
[解決済み] ワイルドカードマッチングに基づいて、現在のフォルダとサブフォルダ内のすべてのファイルを再帰的に検索するにはどうすればよいですか?
-
[解決済み] Linux上で動作するC++コードのプロファイリングを行うにはどうすればよいですか?
-
[解決済み] LinuxのシェルスクリプトでYes/No/Cancelの入力を促すにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Visual Studio 2015で「非標準の構文; '&'を使用してメンバーへのポインターを作成します」エラー
-
[解決済み] クラスにデフォルトコンストラクタが存在しない。
-
[解決済み】'cout'は型名ではない
-
[解決済み】cc1plus:エラー:g++で認識されないコマンドラインオプション"-std=c++11"
-
[解決済み】ファイルから整数を読み込んで配列に格納する C++ 【クローズド
-
[解決済み】エラー:free(): 次のサイズが無効です(fast)。
-
[解決済み】システムが指定されたファイルを見つけられませんでした。
-
[解決済み】C++ - 適切なデフォルトコンストラクタがない [重複]。
-
[解決済み】演算子のオーバーロード C++; <<操作のパラメータが多すぎる
-
[解決済み】変数やフィールドがvoid宣言されている