Help figuring out linking error

Merkava120

Oberleutnant
Joined
Feb 2, 2013
Messages
450
Location
Socially distant
So, I've started fiddling with the SDK again. I compiled the DLL once, a very long time ago, and then dropped modding for a while. Now that I'm at it again I can't seem to get it working. I tracked down an error with one of the files, thanks to some help from other threads, but now I'm stuck on a linking error.
Here is what it says:
Code:
1>------ Build started: Project: CvGameCoreDLL, Configuration: Debug Win32 ------
1>Build started 7/19/2014 4:39:14 PM.
1>Build:
1>  	"C:\Program Files (x86)\Microsoft Visual C++ Toolkit 2003\bin\link.exe" /out:Debug\CvGameCoreDLL.dll /INCREMENTAL /DEBUG /PDB:"Debug\CvGameCoreDLL.pdb" /IMPLIB:"Debug\CvGameCoreDLL.lib" /DLL /NOLOGO /SUBSYSTEM:WINDOWS /LARGEADDRESSAWARE /TLBID:1 /LIBPATH:Python24/libs /LIBPATH:boost-1.32.0/libs/ boost_python-vc71-mt-1_32.lib /LIBPATH:"C:\Program Files (x86)\Microsoft Visual C++ Toolkit 2003/lib" /LIBPATH:"C:\Program Files\WindowsSDK/Lib"  /LIBPATH:"C:\Program Files (x86)\Firaxis Games\Sid Meier's Civilization 4\Beyond the Sword\CvGameCoreDLL\Boost-1.32.0/libs" /LIBPATH:"C:\Program Files (x86)\Firaxis Games\Sid Meier's Civilization 4\Beyond the Sword\CvGameCoreDLL\Python24/libs" winmm.lib user32.lib msvcprt.lib Debug\CvArea.obj  Debug\CvArtFileMgr.obj  Debug\CvCity.obj  Debug\CvCityAI.obj  Debug\CvDeal.obj  Debug\CvDiploParameters.obj  Debug\CvDLLButtonPopup.obj  Debug\CvDLLEntity.obj  Debug\CvDLLPython.obj  Debug\CvDllPythonEvents.obj  Debug\CvDllTranslator.obj  Debug\CvDLLWidgetData.obj  Debug\CvEventReporter.obj  Debug\CvFractal.obj  Debug\CvGame.obj  Debug\CvGameAI.obj  Debug\CvGameCoreDLL.obj  Debug\CvGameCoreUtils.obj  Debug\CvGameInterface.obj  Debug\CvGameTextMgr.obj  Debug\CvGlobals.obj  Debug\CvHallOfFameInfo.obj  Debug\CvInfos.obj  Debug\CvInfoWater.obj  Debug\CvInitCore.obj  Debug\CvMap.obj  Debug\CvMapGenerator.obj  Debug\CvMessageControl.obj  Debug\CvMessageData.obj  Debug\CvPlayer.obj  Debug\CvPlayerAI.obj  Debug\CvPlot.obj  Debug\CvPlotGroup.obj  Debug\CvPopupInfo.obj  Debug\CvPopupReturn.obj  Debug\CvRandom.obj  Debug\CvReplayInfo.obj  Debug\CvReplayMessage.obj  Debug\CvSelectionGroup.obj  Debug\CvSelectionGroupAI.obj  Debug\CvStatistics.obj  Debug\CvStructs.obj  Debug\CvTalkingHeadMessage.obj  Debug\CvTeam.obj  Debug\CvTeamAI.obj  Debug\CvUnit.obj  Debug\CvUnitAI.obj  Debug\CvXMLLoadUtility.obj  Debug\CvXMLLoadUtilityGet.obj  Debug\CvXMLLoadUtilityInit.obj  Debug\CvXMLLoadUtilitySet.obj  Debug\CyArea.obj  Debug\CyAreaInterface.obj  Debug\CyArgsList.obj  Debug\CyArtFileMgr.obj  Debug\CyArtFileMgrInterface.obj  Debug\CyCity.obj  Debug\CyCityInterface1.obj  Debug\CyDeal.obj  Debug\CyEnumsInterface.obj  Debug\CyGame.obj  Debug\CyGameCoreUtils.obj  Debug\CyGameCoreUtilsInterface.obj  Debug\CyGameInterface.obj  Debug\CyGameTextMgr.obj  Debug\CyGameTextMgrInterface.obj  Debug\CyGlobalContext.obj  Debug\CyGlobalContextInterface1.obj  Debug\CyGlobalContextInterface2.obj  Debug\CyGlobalContextInterface3.obj  Debug\CyGlobalContextInterface4.obj  Debug\CyHallOfFameInfo.obj  Debug\CyHallOfFameInterface.obj  Debug\CyInfoInterface1.obj  Debug\CyInfoInterface2.obj  Debug\CyInfoInterface3.obj  Debug\CyMap.obj  Debug\CyMapGenerator.obj  Debug\CyMapGeneratorInterface.obj  Debug\CyMapInterface.obj  Debug\CyMessageControl.obj  Debug\CyMessageControlInterface.obj  Debug\CyPlayer.obj  Debug\CyPlayerInterface1.obj  Debug\CyPlayerInterface2.obj  Debug\CyPlot.obj  Debug\CyPlotInterface1.obj  Debug\CyRandomInterface.obj  Debug\CyReplayInfo.obj  Debug\CySelectionGroup.obj  Debug\CySelectionGroupInterface.obj  Debug\CyStructsInterface1.obj  Debug\CyTeam.obj  Debug\CyTeamInterface.obj  Debug\CyUnit.obj  Debug\CyUnitInterface1.obj  Debug\FAssert.obj  Debug\FDialogTemplate.obj  Debug\_precompile.obj   Debug\CvGameCoreDLL.res
1>MSVCRT.lib(ti_inst.obj) : warning LNK4229: invalid directive '/FAILIFMISMATCH:_MSC_VER=1600' encountered; ignored
1>MSVCRT.lib(crtdll.obj) : warning LNK4078: multiple '.CRT' sections found with different attributes (40300040)
1>MSVCRT.lib(tncleanup.obj) : warning LNK4229: invalid directive '/FAILIFMISMATCH:_MSC_VER=1600' encountered; ignored
1>MSVCRT.lib(crtdll.obj) : warning LNK4078: multiple '.CRT' sections found with different attributes (40300040)
1>MSVCRT.lib(ti_inst.obj) : warning LNK4229: invalid directive '/FAILIFMISMATCH:_MSC_VER=1600' encountered; ignored
1>MSVCRT.lib(tncleanup.obj) : warning LNK4229: invalid directive '/FAILIFMISMATCH:_MSC_VER=1600' encountered; ignored
1>     Creating library Debug\CvGameCoreDLL.lib and object Debug\CvGameCoreDLL.exp
1>CyMessageControl.obj : error LNK2001: unresolved external symbol "public: __thiscall exception::exception(class exception const &)" (??0exception@@QAE@ABV0@@Z)
1>CyStructsInterface1.obj : error LNK2001: unresolved external symbol "public: __thiscall exception::exception(class exception const &)" (??0exception@@QAE@ABV0@@Z)
1>_precompile.obj : error LNK2001: unresolved external symbol "public: __thiscall exception::exception(class exception const &)" (??0exception@@QAE@ABV0@@Z)
1>CyHallOfFameInterface.obj : error LNK2001: unresolved external symbol "public: __thiscall exception::exception(class exception const &)" (??0exception@@QAE@ABV0@@Z)
1>CyInfoInterface1.obj : error LNK2001: unresolved external symbol "public: __thiscall exception::exception(class exception const &)" (??0exception@@QAE@ABV0@@Z)
1>CyInfoInterface2.obj : error LNK2001: unresolved external symbol "public: __thiscall exception::exception(class exception const &)" (??0exception@@QAE@ABV0@@Z)
1>CyInfoInterface3.obj : error LNK2001: unresolved external symbol "public: __thiscall exception::exception(class exception const &)" (??0exception@@QAE@ABV0@@Z)
1>CvUnit.obj : error LNK2001: unresolved external symbol "public: __thiscall exception::exception(class exception const &)" (??0exception@@QAE@ABV0@@Z)
1>CvUnitAI.obj : error LNK2019: unresolved external symbol "public: __thiscall exception::exception(class exception const &)" (??0exception@@QAE@ABV0@@Z) referenced in function "protected: bool __thiscall CvUnitAI::AI_foundRange(int,bool)" (?AI_foundRange@CvUnitAI@@IAE_NH_N@Z)
1>CvXMLLoadUtilitySet.obj : error LNK2001: unresolved external symbol "public: __thiscall exception::exception(class exception const &)" (??0exception@@QAE@ABV0@@Z)
1>CyCity.obj : error LNK2001: unresolved external symbol "public: __thiscall exception::exception(class exception const &)" (??0exception@@QAE@ABV0@@Z)
1>CvSelectionGroup.obj : error LNK2001: unresolved external symbol "public: __thiscall exception::exception(class exception const &)" (??0exception@@QAE@ABV0@@Z)
1>CvStatistics.obj : error LNK2001: unresolved external symbol "public: __thiscall exception::exception(class exception const &)" (??0exception@@QAE@ABV0@@Z)
1>CvStructs.obj : error LNK2001: unresolved external symbol "public: __thiscall exception::exception(class exception const &)" (??0exception@@QAE@ABV0@@Z)
1>CvTeam.obj : error LNK2001: unresolved external symbol "public: __thiscall exception::exception(class exception const &)" (??0exception@@QAE@ABV0@@Z)
1>CvPlot.obj : error LNK2019: unresolved external symbol "public: __thiscall exception::exception(class exception const &)" (??0exception@@QAE@ABV0@@Z) referenced in function "public: void __thiscall CvPlot::updateFeatureSymbolVisibility(void)" (?updateFeatureSymbolVisibility@CvPlot@@QAEXXZ)
1>CvPopupInfo.obj : error LNK2001: unresolved external symbol "public: __thiscall exception::exception(class exception const &)" (??0exception@@QAE@ABV0@@Z)
1>CvPopupReturn.obj : error LNK2001: unresolved external symbol "public: __thiscall exception::exception(class exception const &)" (??0exception@@QAE@ABV0@@Z)
1>CvReplayInfo.obj : error LNK2001: unresolved external symbol "public: __thiscall exception::exception(class exception const &)" (??0exception@@QAE@ABV0@@Z)
1>CvMapGenerator.obj : error LNK2001: unresolved external symbol "public: __thiscall exception::exception(class exception const &)" (??0exception@@QAE@ABV0@@Z)
1>CvMessageData.obj : error LNK2001: unresolved external symbol "public: __thiscall exception::exception(class exception const &)" (??0exception@@QAE@ABV0@@Z)
1>CvPlayer.obj : error LNK2001: unresolved external symbol "public: __thiscall exception::exception(class exception const &)" (??0exception@@QAE@ABV0@@Z)
1>CvPlayerAI.obj : error LNK2001: unresolved external symbol "public: __thiscall exception::exception(class exception const &)" (??0exception@@QAE@ABV0@@Z)
1>CvGlobals.obj : error LNK2001: unresolved external symbol "public: __thiscall exception::exception(class exception const &)" (??0exception@@QAE@ABV0@@Z)
1>CvHallOfFameInfo.obj : error LNK2001: unresolved external symbol "public: __thiscall exception::exception(class exception const &)" (??0exception@@QAE@ABV0@@Z)
1>CvInfos.obj : error LNK2001: unresolved external symbol "public: __thiscall exception::exception(class exception const &)" (??0exception@@QAE@ABV0@@Z)
1>CvMap.obj : error LNK2001: unresolved external symbol "public: __thiscall exception::exception(class exception const &)" (??0exception@@QAE@ABV0@@Z)
1>CvEventReporter.obj : error LNK2001: unresolved external symbol "public: __thiscall exception::exception(class exception const &)" (??0exception@@QAE@ABV0@@Z)
1>CvGame.obj : error LNK2001: unresolved external symbol "public: __thiscall exception::exception(class exception const &)" (??0exception@@QAE@ABV0@@Z)
1>CvGameInterface.obj : error LNK2001: unresolved external symbol "public: __thiscall exception::exception(class exception const &)" (??0exception@@QAE@ABV0@@Z)
1>CvGameTextMgr.obj : error LNK2019: unresolved external symbol "public: __thiscall exception::exception(class exception const &)" (??0exception@@QAE@ABV0@@Z) referenced in function "public: void __thiscall CvGameTextMgr::parseFreeSpecialistHelp(class CvWStringBuffer &,class CvCity const &)" (?parseFreeSpecialistHelp@CvGameTextMgr@@QAEXAAVCvWStringBuffer@@ABVCvCity@@@Z)
1>CvDLLButtonPopup.obj : error LNK2001: unresolved external symbol "public: __thiscall exception::exception(class exception const &)" (??0exception@@QAE@ABV0@@Z)
1>CvDllPythonEvents.obj : error LNK2001: unresolved external symbol "public: __thiscall exception::exception(class exception const &)" (??0exception@@QAE@ABV0@@Z)
1>CvDllTranslator.obj : error LNK2001: unresolved external symbol "public: __thiscall exception::exception(class exception const &)" (??0exception@@QAE@ABV0@@Z)
1>CvDLLWidgetData.obj : error LNK2001: unresolved external symbol "public: __thiscall exception::exception(class exception const &)" (??0exception@@QAE@ABV0@@Z)
1>CvArtFileMgr.obj : error LNK2001: unresolved external symbol "public: __thiscall exception::exception(class exception const &)" (??0exception@@QAE@ABV0@@Z)
1>CvCity.obj : error LNK2019: unresolved external symbol "public: __thiscall exception::exception(class exception const &)" (??0exception@@QAE@ABV0@@Z) referenced in function "public: int __thiscall CvCity::calculateCorporationMaintenanceTimes100(enum CorporationTypes)const " (?calculateCorporationMaintenanceTimes100@CvCity@@QBEHW4CorporationTypes@@@Z)
1>CvCityAI.obj : error LNK2001: unresolved external symbol "public: __thiscall exception::exception(class exception const &)" (??0exception@@QAE@ABV0@@Z)
1>CvDiploParameters.obj : error LNK2001: unresolved external symbol "public: __thiscall exception::exception(class exception const &)" (??0exception@@QAE@ABV0@@Z)
1>CyUnitInterface1.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (__imp_??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ)
1>_precompile.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (__imp_??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ)
1>CyPlot.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (__imp_??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ)
1>CyPlotInterface1.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (__imp_??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ)
1>CyStructsInterface1.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (__imp_??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ)
1>CyUnit.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (__imp_??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ)
1>CyMessageControl.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (__imp_??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ)
1>CyPlayer.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (__imp_??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ)
1>CyPlayerInterface1.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (__imp_??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ)

Then it goes on and on for a while, each line a lot like the ones above but with different .obj files.

So, apparently, a linking error is when a file, function, or something is missing, right? Could someone help me figure out what exactly is missing? Or just tell me what that "1>MSVCRT.lib(ti_inst.obj) : warning LNK4229: invalid directive '/FAILIFMISMATCH:_MSC_VER=1600' encountered; ignored" line means.

I'm using Visual Studio 2010 to compile and the makefile from Asaf's tutorial, is there something special I have to do to get it to compile correctly?

And, by the way, it does this every time I compile anything, not just this DLL.

Thanks in advance.
 
unresolved external symbol is used when you have a function in a header and you use that function, but the function itself is missing. Like you add CvUnit::myFunction() and use pUnit->myFunction(), but never write void CvUnit::myFunction() in any c/cpp file.

The problem here is that the missing function is
Code:
 public: __thiscall exception::exception(class exception const &)" (??0exception@@QAE@ABV0@@Z)
__thiscall is not a particularly useful function to look for.

From what I can get from this, the problem isn't the code itself. It's more like you are missing libraries. My guess would be that it's the 3 libraries from Installing the Tools
http://modiki.civfanatics.com/index.php/How_to_Install_the_SDK
 
Thanks a ton! Once I'm at my computer I'll download those libraries and see if that fixes it.
 
The build worked! :clap::clap::woohoo::thanx:

Even though it worked, and I have a DLL, I'm getting warnings like this:

1>CvArea.obj : warning LNK4099: PDB 'vc70.pdb' was not found with 'Debug\CvArea.obj' or at 'C:\Users\russel\Desktop\CIV MODDING\Merged Mod\SDK Changed Files Only - Copy\Debug\vc70.pdb'; linking object as if no debug info

Should I be worried about that?
 
Should I be worried about that?
It depends on what you want to do. It mean you can't use the debugger, which is a very serious problem if you intend to do so. However if you didn't plan on debugging anyway, then you can ignore it.

It's a weird warning though. I have never seen it before and can't think of a way to end up like that. Try rebuilding and see if it goes away.
 
Top Bottom