2016-10-14 7 views
4

私はGoogleテストフレームワークを使用してテストがうまくいっているunittestプロジェクトを持っています。しかし、今私は#include <boost/filesytem.hpp>ようboost::filesystemヘッダを追加し、私のプロジェクトのリンクとコンパイルすることを後に罰金、しかし、何のすべてで見つけるのテストと私はテストを実行するとき、それはだが私に与えていない - 私はこのコードを持っている場合と同様にboost :: filesystemでヘッダを追加した後、googleテストのユニットテストが見つかりません

Process finished with exit code -1073741515 (0xC0000135) 
Empty test suite. 

#include <gtest/gtest.h> 
TEST(Test, Test1){ 
    ASSERT_FALSE(true); 
} 

それは完全に正常に動作して失敗したテストケースを見つけることが、私はこのようにブーストヘッダを追加する場合:見出されたものは何も後

#include <gtest/gtest.h> 
#include <boost/filesystem.hpp> 
TEST(Test, Test1){ 
    ASSERT_FALSE(true); 
} 

。私はcmake/clion/cygwinベースのenvを使用します。あなたのアイデアのためにどのようにそれらの問題を解決するappriciatedされます。

答えて

3

エラーコードを示し

// 
// MessageId: STATUS_DLL_NOT_FOUND 
// 
// MessageText: 
// 
// The program can't start because %hs is missing from your computer. 
// Try reinstalling the program to fix this problem. 
// 
#define STATUS_DLL_NOT_FOUND    ((NTSTATUS)0xC0000135L) // winnt 

What does error code 0xc0000135 mean when starting a .NET application?を参照)

私の推測では、あなたがテストを含むように動的ライブラリを使用してGoogleのテストを使用しています。 Boost Filesystemを追加したので、Boost SystemとBoost Filesystem DLLにリンクされます。

ただし、テストランナーはこれらの依存関係を読み込むことはできません(エラーが表示されることがあります)。ブーストDLLをシステム全体にインストールするか、テストランナーターゲットの出力ディレクトリ(またはテストランナーが起動されている場所)にコピーするか、マニフェストファイルを使用してDLLの場所を指定します。

UPDATEコメント欄が追加されたので、もちろんDLLにリンクしないと、問題が解決されます。

+1

または、ブーストシステムとファイルシステムライブラリを静的ライブラリとしてコンパイルし、それらをリンクしてください。 –

+0

ブーストシステム@ratchetfreak – sehe

+1

cmakeで、必要なブーストライブラリの静的バージョンを使用するには1)静的ライブラリとしてビルドさせます2) 'find_package(Boost ...) 'の前に'(Boost_USE_STATIC_LIBS ON) 'を設定してください。 –

関連する問題