Ho affrontato problemi simili con chdir e freopen.
Pubblicherò appena i passaggi che ho preso, per ottenere googletest attivo e funzionante con VS2015 e Clang.
- Ottenere uno snapshotbuild LLVM per Windows. http://llvm.org/builds/
(Assicurarsi di scaricare la versione corretta (32/64-bit))
Questo installerà una versione recente di clang (al momento della scrittura v3.9). Tieni presente che questa è una build di istantanee e non una versione ufficiale.
Se non ti piacciono le build di istantanee, magari prova l'ultima versione. Non l'ho provato Mi piacerebbe avere strumenti aggiornati, specialmente quando sono frenetici come LLVM/Clang.
- Dopo l'installazione è necessario ottenere le voci nelle proprietà del progetto di Visual Studio.
Properties
->General
->Platform Tools
->LLVM-vs2014
(e più) (Passa alla LLVM-vs2014
)
Sono consapevole che si sta chiedendo Clang 3.7 con Microsoft CodeGen. Devi decidere da solo.
Inoltre, non mi piace applicare alcune correzioni/modifiche al codice che non ho scritto o non so. Dato che questo ha funzionato bene per me, non ho indagato ulteriormente il problema.
A questo punto potrebbe già funzionare per voi. I passi successivi descrivono la costruzione di librerie googletest e l'aggiunta delle directory di inclusione al progetto.
Ottenere googletest da github. https://github.com/google/googletest
Eseguire cmake-gui e configurare googletest per essere in grado di creare.
Generator: Visual Studio 14 2015 Win64 (io ho usato solo a 64 bit, è possibile anche prova 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.
- Use default compilatori nativi
Dove è la fonte codice: (es .: C:\libs\googletest\googletest
)
(Perché c'è anche googlemock nella directory principale)
Dove costruire i file binari: (ad es. C:\libs\googletest\build
)
- Deseleziona:
BUILD_SHARED_LIBS
(costruire librerie condivise se si desidera) CMAKE_CONFIGURATION_TYPES
: Debug e Release (scegliere altri se vi piace)
ricordare o cambiamento:. CMAKE_INSTALL_PREFIX
(ex C:\libs\googletest\install
)
Python 2.7 è stato trovato da cmake, anche se sono abbastanza sicuro che non sia necessario.
Premere Configura e Genera.
Dopo aver generato il file di soluzione, passare alla directory specificata in precedenza (dove costruire i binari, es. C:\libs\googletest\build
) e aprire il gtest.sln soluzione.
Scegliere la configurazione della soluzione di debug e fare clic con il tasto destro su ALL_BUILD e Build. Al termine, fare clic con il tasto destro su INSTALL e Build. Questo crea le cartelle specificate in precedenza.
CMAKE_INSTALL_PREFIX
(es. C:\libs\googletest\install
) in là si potrebbe voler cambiare il nome librerie e aggiungere un * d.lib per mantenere i file di sovrascrivere e come designatore che era la build di debug.
Ripetere i passaggi per la configurazione della soluzione di rilascio. In CMAKE_INSTALL_PREFIX
(ex C:\libs\googletest\install
) si dovrebbe trovare una directory di inclusione e una directory di lib.
Nel progetto in Proprietà -> Directory VC++ aggiungere Include directory. CMAKE_INSTALL_PREFIX<b>\include</b>
(Es. C:\libs\googletest\install<b>\include</b>
)
Nel progetto in Proprietà - Rubriche> VC++ Aggiungi libreria Directories. CMAKE_INSTALL_PREFIX \ lib:
E sotto Properties
->Linker
->Input
->Additional Dependencies
(gtest.lib/gtestd.lib seconda (ex C \ libs \ googletest \ install \ lib.) la vostra configurazione)
Dopo che sono stato in grado di costruire ed eseguire i miei test.
Ci scusiamo per la pazza risposta in ritardo. Sono appena tornato a questo problema dopo una lunga pausa dai miei progetti, e esito a contrassegnarlo come la risposta accettata, perché sto cercando di ottenere il massimo da lavorare con il toolkit clang incorporato di VS2015. Sono sicuro di poter passare a una build di snapshot LLVM e farlo compilare bene, e potrei farlo se tutto il resto fallisce. (E in tal caso segnerò questa risposta corretta). – WhittlesJr