Visual Studio'da Çalışma Zamanı kitaplığını CMake'den ayarlama konusunda birçok yayın var, ancak benim durumumda Visual Studio ayarımı göz ardı ediyor gibi görünüyor.Visual Studio, cmake içinde çalışma zamanı kitaplığını görmezden geliyor gibi görünüyor.
/MD
ile google-mock oluşturmak istiyorum. Bu, projedeki varsayılan ayardır. ile oluşturulmuş bir taze inşa dizinde
cmake -G "Visual Studio 12 2013" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=C:\Users\mrussell\workspace\opal2\o2win32\Libs\gtest\"1.7.0" -DCMAKE_CXX_FLAGS_RELEASE="/MD /O2 /Ob2 /D NDEBUG" ../googlemock
Bütün cmake değişkenleri doğru
, ben inşa erişmek için, ya komut satırı aracılığıyla (I görünüyor 'linux ..' ya da Visual Studio'dan kullanılır, /MT
bayrağını kullanır.
My inşa komutu (32 bit hedefleyen):
call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\vcvars32.bat"
msbuild /m:4 /property:Configuration=%build_type% ALL_BUILD.vcxproj
Çıktı:
ClCompile:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\CL.exe /c /IC:\Users\mrussell\workspace\opal2\o2win32\Libs\gtest\g
test\include /IC:\Users\mrussell\workspace\opal2\o2win32\Libs\gtest\gtest /Zi /nologo /W4 /WX /O2 /Ob2 /Oy- /D WIN32 /D _WIND
OWS /D NDEBUG /D WIN32 /D _WINDOWS /D _UNICODE /D UNICODE /D WIN32 /D _WIN32 /D STRICT /D WIN32_LEAN_AND_MEAN /D GTEST_HAS_PT
HREAD=0 /D _HAS_EXCEPTIONS=1 /D "CMAKE_INTDIR=\"Release\"" /D _UNICODE /D UNICODE /Gm- /EHsc /MT /GS /fp:precise /Zc:wchar_t
/Zc:forScope /GR /Fo"gtest.dir\Release\\" /Fd"gtest.dir\Release\vc120.pdb" /Gd /TP /wd4127 /wd4251 /wd4275 /analyze- /errorRe
port:queue -J "C:\Users\mrussell\workspace\opal2\o2win32\Libs\gtest\gtest\src\gtest-all.cc"
(. Orada /MT
saklanarak dikkat edin)
Visual Studio, ben çözüm açın Release
serbest bırakma tipini seçin ve hedeflerin herhangi birinde gtest
, Properties
->Configuration Properties
->C/C++
->Code Generation
, Runtime Library
, Cmake dosyasında ayarlandığı gibi /MD
değil, /MT
olarak ayarlanmıştır. Google-testi (1.7.0)
Sadece bunları nasıl ayarlanacağını Dont'anlamak inşa etmeye çalışırsanız
Aynı şey olur? Veya Visual Studio'nun Visual Studio'yu el ile açmadan ve ayarlamadan doğru bayrağı kullanmaya zorlamak için bir yolu var mı?
Muhtemel yinelenen [CMake kullanarak varsayılan olarak GTest build/MDd (/ MTd yerine) nasıl oluşturulur?] (Http://stackoverflow.com/questions/12540970/how-to-make-gtest-build- mdd-yerine-of-mtd-by-varsayılan-kullanarak-cmake) – Tsyvarev
Bence çözümlerden biri (ama seçilmiş olanı değil) aslında benim problemimi çözecek, ama seçilmiş olanı seçmediğim için, baskı yapmakta tereddüt ediyorum. "Bu Benim Sorunumu Çözdü" düğmesine basın. @sakra'nın çözümünü (http://stackoverflow.com/a/12546288/1861346 ile eşleşen) deneyeceğim. Teşekkürler! – Matt