Wie wird GTest build / MDd (statt / MTd) standardmäßig mit CMake erstellt?

9

Ich versuche GTest so nahtlos wie möglich mit CMake zu integrieren. Der Standardbuildtyp für meine Testprojekte lautet jedoch /MDd und GTest standardmäßig auf /MTd . Ich ändere GTest-Projekteigenschaften manuell, um Debug-DLL auszugeben.

Aber jedes Mal, wenn ich Änderungen an meinem CMakeLists.txt vornehme, wird GTest standardmäßig auf /MTd zurückgesetzt. Wie höre ich damit auf?

    
Hindol 22.09.2012, 05:23
quelle

4 Antworten

0

Wir haben das Problem gelöst, indem wir GTests eigenes Build-System umgangen und GTest als kompiliert haben CMake-Objektbibliothek von der Unity-Build-Quelldatei gtest-all.cc :

%Vor%

Auf diese Weise wird GTest immer mit den gleichen Optionen kompiliert, die wir für das Projekt verwenden. Eine Test-ausführbare Datei, die GTest verwendet, kann dann wie folgt erstellt werden:

%Vor%     
sakra 22.09.2012, 12:51
quelle
15

Sie können gtest_force_shared_crt bis ON vor dem Einschließen von gtest definieren, um dies zu erreichen. Sie können dies entweder über die Befehlszeile tun:

%Vor%

oder in Ihrem CMakeLists.txt :

%Vor%     
Fraser 22.09.2012 17:54
quelle
13

Ich denke, eine bessere Option ist @ Frasers Antwort - in diesem Fall funktioniert cmake + gtest einfach.

Es ist erwähnenswert, dass, um die interne gtest option Einstellung zu überschreiben, müssen Sie die Variable in den cmake-Cache:

%Vor%     
Ted Middleton 03.05.2014 02:47
quelle
4

Wenn Ted Middletons Antwort nicht funktioniert, versuchen Sie FORCE:

%Vor%

Es hat für mich funktioniert

    
Pacific Mariner 17.12.2015 12:51
quelle

Tags und Links