Recentemente ho aggiornato al 2012 dal 2005 (ne sono abbastanza sicuro) e ho riscontrato errori di collegamento durante la creazione della mia soluzione. Ho perso idee dopo ore di ricerche su google e in giro. Ho creato dozzine di progetti, quindi sono abbastanza certo di aver fatto tutto bene, ma per essere onesti, sono passati alcuni anni.Errori di collegamento di Visual Studio 2012 con librerie statiche
Quindi, come test ho creato un nuovo progetto. L'ho chiamato App, un'applicazione Windows (.exe). Ho creato un secondo progetto chiamato Core e contrassegnato come libreria statica (.lib) nel suo tipo di configurazione. Entrambi fanno parte della soluzione. In Core ho aggiunto Test.cpp e Test.h che contengono una piccola classe che ha una funzione semplice in essa. Quindi, all'interno del file WinMain.cpp delle applicazioni di Windows ho WinMain() dove chiamo in questa classe di test tramite CTest test; Risultato del test();
Insieme a questo ho impostato le dipendenze del progetto dell'app per essere core e infine aggiunto alle directory di inclusione aggiuntive dell'app il percorso del codice core in cui Test.cpp/.h live.
Ottengo i seguenti errori di collegamento e non riesco, per la vita di me, a capire perché. Qualcuno sa quale passo ho perso o cosa è cambiato nel 2012 rispetto alle versioni precedenti? Grazie mille in anticipo per l'aiuto!
1>------ Build started: Project: App, Configuration: Debug Win32 ------
1>WinMain.obj : error LNK2019: unresolved external symbol "public: __thiscall CTest::CTest(void)" ([email protected]@[email protected]) referenced in function [email protected]
1>WinMain.obj : error LNK2019: unresolved external symbol "public: __thiscall CTest::~CTest(void)" ([email protected]@[email protected]) referenced in function [email protected]
1>WinMain.obj : error LNK2019: unresolved external symbol "public: int __thiscall CTest::Result(void)" ([email protected]@@QAEHXZ) referenced in function [email protected]
1>D:\Work\Test_Linker_Stupidity\App\Debug\App.exe : fatal error LNK1120: 3 unresolved externals
========== Build: 0 succeeded, 1 failed, 1 up-to-date, 0 skipped ========
Grazie Peter! Ieri sera ho telefonato ad alcuni amici su FB e loro mi hanno indicato nella stessa direzione. È stato sorprendente che non abbia trovato altri articoli che facessero riferimento alla stessa soluzione, quindi spero che questo sarà vantaggioso per gli altri in futuro. Avevo anche provato ad aggiungere le libs come input, che funzionava sicuramente, ma era molto meno che ideale. In realtà avevo dimenticato di aver provato quella soluzione, albiet brevemente. Grazie ancora per l'aiuto! –
Come riferimento rapido, questo è il collegamento a cui sono stato indirizzato: http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/d69aeb0d-e5fb-41e1-98ad-9b6c7b43a3ca/# c8b80c9a-2e8d-4a06-9d0f-a63ee15a208e –
Molto utile, grazie Peter. – Ken