Hin*_*dol 10 cmake googletest visual-c++
我试图尽可能无缝地集成GTest和CMake.但我的测试项目的默认构建类型是/MDdGTest默认的/MTd.我手动更改GTest项目属性以发出调试DLL.
但是每当我对我做出更改时CMakeLists.txt,GTest都会默认返回/MTd.我怎么阻止这个?
Fra*_*ser 23
您可以定义gtest_force_shared_crt要ON包括GTEST实现这一目标之前.您可以通过命令行执行此操作:
cmake . -Dgtest_force_shared_crt=ON
Run Code Online (Sandbox Code Playgroud)
或在你的CMakeLists.txt:
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
Run Code Online (Sandbox Code Playgroud)
Ted*_*ton 13
我认为更好的选择是@Fraser的答案 - 在这种情况下,cmake + gtest'正常工作'.
值得一提的是,为了覆盖内部gtest option设置,您需要将变量放在cmake缓存中:
set( gtest_force_shared_crt ON CACHE BOOL "Always use msvcrt.dll" )
Run Code Online (Sandbox Code Playgroud)
小智 5
如果Ted Middleton的答案不起作用,请尝试使用FORCE:
set( gtest_force_shared_crt ON CACHE BOOL "Always use msvcrt.dll" FORCE)
Run Code Online (Sandbox Code Playgroud)
它对我有用