2016-10-20 17 views
0

の一部であるGTEST私は経由GTestを見つけたい見つけることができませんでした標準CMakeを介して。find_packageはCMakeの

私が間違ったことを教えてもらえますか?

+0

は、なぜあなたはGTESTはCMakeのの一部であると思いますか?あなたは 'GTEST_ADD_TESTS'を見たことがありますか?多分あなたはそれを使いたいでしょうか? – usr1234567

+0

[CMakeはインクルード/ライブラリを見つけられません](http://stackoverflow.com/questions/39126648/cmake-does-not-find-includes-libraries) – usr1234567

答えて

0

find_package CMakeのインストールディレクトリでは表示されません。 PATHおよびCMAKE_PREFIX_VARIABLESのみ評価されます。 CMakeのGTestへのパスを後者の変数に追加するだけで、CMakeキャッシュをクリアしてCMakeを再実行します。

+0

ありがとう!私はcmakeの新人です、あなたはそれで私を助けることができますか? –

+0

FindGTest.cmakeが見つかりました。 /Applications/Clion.app/Contents/bin/cmake/share/cmake-3.6/Modules/ –

0

あなたがUbuntuを使用している場合は、/usr/share/doc/libgtest-dev/README.Debianとお読みください。それは言う:

The Google C++ Testing Framework uses conditional compilation for some things. Because of the C++ "One Definition Rule", gtest must be compiled with exactly the same flags as your C++ code under test. Because this is hard to manage, upstream no longer recommends using precompiled libraries

だからコンパイルとまったく同じコンパイラオプションでgtestライブラリの独自のバージョンをインストールし、それに応じてGTEST_LIBRARYまたはGTEST_ROOT変数を設定する必要があります。例えば

、私は次のようでした:

$ mkdir -p ExternalLibs/gTest 
$ cd ExternalLibs/gTest 
$ cmake /usr/src/gtest 
$ make 

は、その後、私は私のCMakeLists.txtに以下の行を追加:

set (GTEST_ROOT ${CMAKE_SOURCE_DIR}/ExternalLibs/gTest) 
find_package(GTest REQUIRED) 
関連する問題