PDA

View Full Version : wxWidgets 2.6.3 + VC++ 8 errori linking


Black imp
23-04-2007, 13:36
sto cercando di compilare un programma scritto da un'altra persona. ho installato le wxWidgets 2.6.3 - il programma è stato scritto con le 2.6.1 - e le ho compilate in versione release. ho aggiunto le librerie addizionali di windows

kernel32.lib
user32.lib
gdi32.lib
winspool.lib
comdlg32.lib
advapi32.lib
shell32.lib
ole32.lib
oleaut32.lib
uuid.lib

nel file C:\Program Files\Microsoft Visual Studio 8\VC\VCProjectDefaults\corewin_express.

in più ho mantenuto le inclusioni specifiche - quasi tutte ridondanti - che l'altro programmatore aveva messo nei singoli progetti - eventualmente faccio un po' di screenshots -

mi compila correttamente due progetti su tre che costituiscono le librerie dell'eseguibile. quando però compila il terzo progetto con l'eseguibile e deve linkare mi dà i segg errori:


Generating Code...
Linking...
AppFrame.obj : error LNK2019: unresolved external symbol "public: virtual __thiscall BatchDialog::~BatchDialog(void)" (??1BatchDialog@@UAE@XZ) referenced in function "private: void __thiscall AppFrame::OnMenuReconBatch(class wxCommandEvent &)" (?OnMenuReconBatch@AppFrame@@AAEXAAVwxCommandEvent@@@Z)
AppFrame.obj : error LNK2019: unresolved external symbol "public: __thiscall BatchThread::BatchThread(class AppFrame *,class PDM_GLSurface *,class CorrFrame *,class wxArrayString,class CameraSet *,unsigned int,class wxString,class wxString,bool,bool,bool,bool,int,unsigned int,unsigned int,float,float,unsigned int,float,float,unsigned int,unsigned int)" (??0BatchThread@@QAE@PAVAppFrame@@PAVPDM_GLSurface@@PAVCorrFrame@@VwxArrayString@@PAVCameraSet@@IVwxString@@5_N666HIIMMIMMII@Z) referenced in function "private: void __thiscall AppFrame::OnMenuReconBatch(class wxCommandEvent &)" (?OnMenuReconBatch@AppFrame@@AAEXAAVwxCommandEvent@@@Z)
AppFrame.obj : error LNK2019: unresolved external symbol "public: int __thiscall BatchDialog::getImagesNumber(void)" (?getImagesNumber@BatchDialog@@QAEHXZ) referenced in function "private: void __thiscall AppFrame::OnMenuReconBatch(class wxCommandEvent &)" (?OnMenuReconBatch@AppFrame@@AAEXAAVwxCommandEvent@@@Z)
AppFrame.obj : error LNK2019: unresolved external symbol "public: class wxString __thiscall BatchDialog::getDestinationFolder(void)" (?getDestinationFolder@BatchDialog@@QAE?AVwxString@@XZ) referenced in function "private: void __thiscall AppFrame::OnMenuReconBatch(class wxCommandEvent &)" (?OnMenuReconBatch@AppFrame@@AAEXAAVwxCommandEvent@@@Z)
AppFrame.obj : error LNK2019: unresolved external symbol "public: bool __thiscall BatchDialog::save3DPlusChecked(void)" (?save3DPlusChecked@BatchDialog@@QAE_NXZ) referenced in function "private: void __thiscall AppFrame::OnMenuReconBatch(class wxCommandEvent &)" (?OnMenuReconBatch@AppFrame@@AAEXAAVwxCommandEvent@@@Z)
AppFrame.obj : error LNK2019: unresolved external symbol "public: bool __thiscall BatchDialog::save3DChecked(void)" (?save3DChecked@BatchDialog@@QAE_NXZ) referenced in function "private: void __thiscall AppFrame::OnMenuReconBatch(class wxCommandEvent &)" (?OnMenuReconBatch@AppFrame@@AAEXAAVwxCommandEvent@@@Z)
AppFrame.obj : error LNK2019: unresolved external symbol "public: bool __thiscall BatchDialog::saveRecChecked(void)" (?saveRecChecked@BatchDialog@@QAE_NXZ) referenced in function "private: void __thiscall AppFrame::OnMenuReconBatch(class wxCommandEvent &)" (?OnMenuReconBatch@AppFrame@@AAEXAAVwxCommandEvent@@@Z)
AppFrame.obj : error LNK2019: unresolved external symbol "public: bool __thiscall BatchDialog::saveVRMLChecked(void)" (?saveVRMLChecked@BatchDialog@@QAE_NXZ) referenced in function "private: void __thiscall AppFrame::OnMenuReconBatch(class wxCommandEvent &)" (?OnMenuReconBatch@AppFrame@@AAEXAAVwxCommandEvent@@@Z)
AppFrame.obj : error LNK2019: unresolved external symbol "public: class wxString __thiscall BatchDialog::getImagesFolder(void)" (?getImagesFolder@BatchDialog@@QAE?AVwxString@@XZ) referenced in function "private: void __thiscall AppFrame::OnMenuReconBatch(class wxCommandEvent &)" (?OnMenuReconBatch@AppFrame@@AAEXAAVwxCommandEvent@@@Z)
AppFrame.obj : error LNK2019: unresolved external symbol "public: class wxString __thiscall BatchDialog::getCalibrationFile(void)" (?getCalibrationFile@BatchDialog@@QAE?AVwxString@@XZ) referenced in function "private: void __thiscall AppFrame::OnMenuReconBatch(class wxCommandEvent &)" (?OnMenuReconBatch@AppFrame@@AAEXAAVwxCommandEvent@@@Z)
AppFrame.obj : error LNK2019: unresolved external symbol "public: __thiscall BatchDialog::BatchDialog(class wxWindow *)" (??0BatchDialog@@QAE@PAVwxWindow@@@Z) referenced in function "private: void __thiscall AppFrame::OnMenuReconBatch(class wxCommandEvent &)" (?OnMenuReconBatch@AppFrame@@AAEXAAVwxCommandEvent@@@Z)
main.obj : error LNK2019: unresolved external symbol "public: bool __thiscall wxXmlResource::Load(class wxString const &)" (?Load@wxXmlResource@@QAE_NABVwxString@@@Z) referenced in function "public: virtual bool __thiscall Application::OnInit(void)" (?OnInit@Application@@UAE_NXZ)
main.obj : error LNK2019: unresolved external symbol "public: void __thiscall wxXmlResource::InitAllHandlers(void)" (?InitAllHandlers@wxXmlResource@@QAEXXZ) referenced in function "public: virtual bool __thiscall Application::OnInit(void)" (?OnInit@Application@@UAE_NXZ)
main.obj : error LNK2019: unresolved external symbol "public: static class wxXmlResource * __cdecl wxXmlResource::Get(void)" (?Get@wxXmlResource@@SAPAV1@XZ) referenced in function "public: virtual bool __thiscall Application::OnInit(void)" (?OnInit@Application@@UAE_NXZ)
.\Release/Reconstructor.exe : fatal error LNK1120: 14 unresolved externals


non riesco a capire dove sia il problema: non ho incluso delle .lib di windows, c'è un problema dovuto al fatto che il programma originariamente era fatto per versione debug e pur avendo compilato librerie wxwidgets e tutti e 3 i progetti in versione release c'è qualche discrepanza - unicode? - ... altro?

qualche settaggio nel file setup.h?


:muro: :muro: :muro:

apprezzo ogni tentativo di aiuto

Black imp
23-04-2007, 18:34
risolto.

gli ultimi 3 dipendevano dal fatto che non era detto al linker di includere una lib di wxwidgets. i primi invece erano file del progetto stesso: il programmatore si era dimenticato di includere nel suo progetto due header e i rispettivi cpp. era presenti ma non inclusi esplicitamente quindi li compilava ma non li linkava.