Miałem podobne problemy z chdir i freopen.
Po prostu opublikuję kroki, które zrobiłem, aby uzyskać najlepsze wyniki w działaniu z VS2015 i Clang.
- Uzyskaj obraz stanu LLVM dla systemu Windows. http://llvm.org/builds/
(Upewnij się pobrać odpowiednią wersję (32-/64-bitowy))
Spowoduje to zainstalowanie najnowszej wersji brzękiem (w chwili pisania v3.9). Należy pamiętać, że jest to kompilacja migawki, a nie wersja oficjalna.
Jeśli nie lubisz wersji snapshot, może wypróbuj najnowszą wersję. Nie testowałem tego. Po prostu lubię mieć aktualne narzędzia, zwłaszcza gdy działają w szybkim tempie, jak LLVM/Clang.
- Po instalacji należy uzyskać wpisy we właściwościach projektu Visual Studio.
Properties
->General
->Platform Tools
->LLVM-vs2014
(i więcej) (Przełącz na LLVM-vs2014
)
Jestem świadomy, że prosisz o Clang 3.7 z Microsoft Codegen. Musisz sam podjąć decyzję.
Ponadto nie lubię stosować poprawek/zmian w kodzie, których nie napisałem lub nie wiem. Ponieważ wszystko dobrze się sprawdziło, nie badałem problemu.
W tym momencie może już działać dla Ciebie. Kolejne kroki opisują tworzenie bibliotek googletest i dodawanie katalogów z zawartością do projektu.
Pobierz aplikację googletest z github. https://github.com/google/googletest
Uruchom cmake-gui i skonfiguruj googletest, aby móc budować.
Generator: Visual Studio 14 2015 Win64 (użyłem tylko 64bit, można również try 32bit)
From the llvm documentation
(no link because not enough reputation: clang.llvm.org/docs/MSVCCompatibility.html):
First, Clang attempts to be ABI-compatible, meaning that Clang-compiled code should be able to link against MSVC-compiled code successfully.
- Użyj domyślnego natywne kompilatory
Gdzie jest źródło kod: (np. C:\libs\googletest\googletest
)
(ponieważ w górnym katalogu znajduje się również googlemock)
Gdzie budować pliki binarne: (np. C:\libs\googletest\build
)
- Odznacz:
BUILD_SHARED_LIBS
(budowanie wspólnych bibliotekami jeśli chcesz) CMAKE_CONFIGURATION_TYPES
: Debug i Release (wybierz innych, jeśli chcesz)
Pamiętaj lub zmiana. CMAKE_INSTALL_PREFIX
(ex C:\libs\googletest\install
)
Python 2.7 został znaleziony przez cmake, chociaż jestem pewien, że nie jest to konieczne.
Naciśnij przycisk Konfiguruj i wygeneruj.
Po wygenerowaniu pliku rozwiązanie, przejdź do katalogu określonym powyżej (Gdzie zbudować binaria, ex. C:\libs\googletest\build
) i otwórz gtest.sln rozwiązanie.
Wybierz konfigurację rozwiązania Debug i kliknij prawym przyciskiem myszy ALL_BUILD i Build. Po zakończeniu kliknij prawym przyciskiem myszy INSTALUJ i kompiluj. Spowoduje to utworzenie folderów określonych wcześniej.
CMAKE_INSTALL_PREFIX
(ex. C:\libs\googletest\install
) tam może chcesz zmienić nazwę libs i dodaj * d.lib zachować pliki z zastąpieniem i jako oznacznik że to kompilacja debugowania.
Powtórz kroki dla konfiguracji Release rozwiązań. W CMAKE_INSTALL_PREFIX
(np. C:\libs\googletest\install
) powinieneś znaleźć katalog include i katalog lib.
W swoim projekcie w obszarze Właściwości -> VC++ Katalogi dodaj Dołącz katalogi. CMAKE_INSTALL_PREFIX<b>\include</b>
(. Ex C:\libs\googletest\install<b>\include</b>
)
w projekcie pod Właściwości -> VC++ Directories dodać Library Directories. CMAKE_INSTALL_PREFIX \ lib:
A pod Properties
->Linker
->Input
->Additional Dependencies
(gtest.lib/gtestd.lib zależności (ex C \ libs \ googletest \ zainstalować \ lib). twoja konfiguracja)
Później mogłem zbudować i przeprowadzić testy.
Przepraszamy za zwariowaną spóźnioną odpowiedź. Właśnie wracam do tego problemu po długiej przerwie od moich projektów, i waham się oznaczyć to jako zaakceptowaną odpowiedź, ponieważ próbuję uzyskać gtest do pracy z wbudowanym zestawem narzędzi klang VS2015. Jestem pewien, że mógłbym przełączyć się na kompilację LLVM i skompilować ją dobrze, i mogę to zrobić, jeśli wszystko inne zawiedzie. (W takim przypadku zaznaczę poprawną odpowiedź.) – WhittlesJr