Перенес VC++2005 на новый комп.
Все установил, настроил точно так же (хотелось бы думать).
По крайне мере над Tools -> Options ->> Projects And Solutions -> VC++ Project Directories поработал над полным соответствием
Компилирую свой любимый Ptlib->Opal->T38modem, специально следил что все "точно также" на обоих компах
Сразу отмечу, что у меня засунуты в код Win32-API,
dll-ы скомпилировались без проблем, а exe-шник выдал:
1>Linking...
1> Creating library .\Release/t38modem.lib and object .\Release/t38modem.exp
1>main_process.obj : error LNK2019: unresolved external symbol __imp__FreeSid@4 referenced in function "int __cdecl IsLocalSystem(void)"
(?IsLocalSystem@@YAHXZ)
1>main_process.obj : error LNK2019: unresolved external symbol __imp__CheckTokenMembership@12 referenced in function "int __cdecl
IsLocalSystem(void)" (?IsLocalSystem@@YAHXZ)
1>main_process.obj : error LNK2019: unresolved external symbol __imp__AllocateAndInitializeSid@44 referenced in function "int __cdecl
IsLocalSystem(void)" (?IsLocalSystem@@YAHXZ)
1>sipep.obj : error LNK2001: unresolved external symbol __imp__SHGetFolderPathA@20
1>main_process.obj : error LNK2019: unresolved external symbol __imp__SHGetFolderPathA@20 referenced in function "protected: bool __thiscall
T38modem::Initialise(void)" (?Initialise@T38modem@@IAE_NXZ)
1>capi_ep.obj : error LNK2001: unresolved external symbol __imp__SHGetFolderPathA@20
1>h323ep.obj : error LNK2001: unresolved external symbol __imp__SHGetFolderPathA@20
1>manager.obj : error LNK2001: unresolved external symbol __imp__SHGetFolderPathA@20
1>.\Release/t38modem.exe : fatal error LNK1120: 4 unresolved externals
1>Build log was saved at "file://c:\t38modem\opal\Release\BuildLog.htm"
1>t38modem - 9 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Т.е. явные намеки на проблемы с API.
Сам проект я при переносе не менял.Но тем не менее пошел в свойства проекта.
Обнаружил отличия в Linker -> Command Line
На старом компе:
автор |
---|
/OUT:".\Release/t38modem.exe" /INCREMENTAL:NO /NOLOGO /MANIFEST /MANIFESTFILE:".\Release\t38modem.exe.intermediate.manifest"
/PDB:".\Release/t38modem.pdb" /SUBSYSTEM:CONSOLE /MACHINE:X86 /ERRORREPORT:PROMPT opal.lib ptlib.lib wsock32.lib kernel32.lib user32.lib
gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib |
На новом компе:
автор |
---|
/OUT:".\Release/t38modem.exe" /INCREMENTAL:NO /NOLOGO /MANIFEST /MANIFESTFILE:".\Release\t38modem.exe.intermediate.manifest"
/PDB:".\Release/t38modem.pdb" /SUBSYSTEM:CONSOLE /MACHINE:X86 /ERRORREPORT:PROMPT opal.lib ptlib.lib wsock32.lib kernel32.lib |
т.е. явная нехватка того что выделено, где эти API сидят.
Причем проблема точно не в проекте,
а в общих настройках студии или чего-то еще.
Куда я должен смотреть? В какие настройки?.