Voglio creare test di unità per un progetto di Visual C++. Ho provato a seguire these MSDN instructions. Ho trovato pagine in cui distinguono tra codice non gestito/misto/puro, ma non capisco appieno questi concetti. Il mio codice non usa .NET e verrebbe probabilmente compilato in MinGW con alcune modifiche al codice.Esterni non risolti durante la compilazione dei test di unità per Visual C++ 2012
Il mio progetto principale crea un eseguibile, quindi ho seguito i passaggi sotto Per fare riferimento alle funzioni esportate dal progetto di test. Per cominciare ho avuto diverse opzioni di progetto:
sono andato con Native Unit Test Progetto. Ho aggiunto un riferimento al mio progetto principale e ho impostato Includi directory a $(SolutionDir)\Cubes;$(IncludePath)
. Ho scritto il mio codice e ottenuto questo durante la compilazione:
1>Creating library C:\Users\Pieter\Dropbox\Unief\TTUI\TTUIproject\Cubes\Debug\CubesTest.lib and object C:\Users\Pieter\Dropbox\Unief\TTUI\TTUIproject\Cubes\Debug\CubesTest.exp
1>LayoutTest.obj : error LNK2019: unresolved external symbol "public: __thiscall Room::Room(void)" ([email protected]@[email protected]) referenced in function "public: void __thiscall CubesTest::LayoutTest::NumOfRoomsConsistency(void)" ([email protected]@[email protected]@QAEXXZ)
1>LayoutTest.obj : error LNK2019: unresolved external symbol "public: __thiscall Layout::Layout(class Room *,int)" ([email protected]@[email protected]@@[email protected]) referenced in function "public: void __thiscall CubesTest::LayoutTest::NumOfRoomsConsistency(void)" ([email protected]@[email protected]@QAEXXZ)
1>LayoutTest.obj : error LNK2019: unresolved external symbol "public: void __thiscall Layout::add(int,int,class Room *)" ([email protected]@@[email protected]@@Z) referenced in function "public: void __thiscall CubesTest::LayoutTest::NumOfRoomsConsistency(void)" ([email protected]@[email protected]@QAEXXZ)
1>LayoutTest.obj : error LNK2019: unresolved external symbol "public: void __thiscall Layout::clear(int,int,bool)" ([email protected]@@[email protected]) referenced in function [email protected]@[email protected]@QAEXXZ$0
1>C:\Users\Pieter\Dropbox\Unief\TTUI\TTUIproject\Cubes\Debug\CubesTest.dll : fatal error LNK1120: 4 unresolved externals
Se non mi sbaglio, questo significa che il compilatore trova i file di intestazione, ma non i file di origine. Cosa mi manca?
No, questo significa che ** ** linker non trova i file binari contenenti i simboli di riferimento. – SomeWittyUsername
Come posso dire al linker dove trovare i file richiesti? Ho già provato [questo] (http://i.imgur.com/jitTd.png) senza successo. – Pieter
Questo dovrebbe fare il trucco. Assicurati inoltre * di * davvero * di compilare tutti i progetti contenenti i tuoi file (controlla le dipendenze) – SomeWittyUsername