Installing and using the SDK

Not sure if we're allowed to still post here, but:

I followed the instructions in the first thread to the 'T'. Well, not really, obviously, otherwise it would've worked - I'm just an incredible . Upon clicking 'Build' I got the following:

Spoiler :
||=== Build: Final Release Win32 in CvGameCoreDLL (compiler: Microsoft Visual C++ Toolkit 2003) ===|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\_precompile.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvArea.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvArtFileMgr.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvCity.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvCityAI.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvDeal.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvDiploParameters.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvDLLButtonPopup.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvDLLEntity.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvDLLPython.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvDllPythonEvents.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvDllTranslator.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvDLLWidgetData.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvEventReporter.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvFractal.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvGame.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvGameAI.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvGameCoreDLL.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvGameCoreUtils.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvGameInterface.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvGameTextMgr.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvGlobals.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvHallOfFameInfo.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvInfos.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvInfoWater.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvInitCore.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvMap.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvMapGenerator.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvMessageControl.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvMessageData.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvPlayer.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvPlayerAI.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvPlot.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvPlotGroup.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvPopupInfo.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvPopupReturn.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvRandom.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvReplayInfo.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvReplayMessage.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvSelectionGroup.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvSelectionGroupAI.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvStatistics.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvStructs.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvTalkingHeadMessage.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvTeam.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvTeamAI.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvUnit.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvUnitAI.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvXMLLoadUtility.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvXMLLoadUtilityGet.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvXMLLoadUtilityInit.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CvXMLLoadUtilitySet.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyArea.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyAreaInterface.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyArgsList.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyArtFileMgr.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyArtFileMgrInterface.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyCity.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyCityInterface1.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyDeal.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyEnumsInterface.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyGame.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyGameCoreUtils.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyGameCoreUtilsInterface.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyGameInterface.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyGameTextMgr.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyGameTextMgrInterface.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyGlobalContext.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyGlobalContextInterface1.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyGlobalContextInterface2.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyGlobalContextInterface3.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyGlobalContextInterface4.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyHallOfFameInfo.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyHallOfFameInterface.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyInfoInterface1.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyInfoInterface2.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyInfoInterface3.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyMap.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyMapGenerator.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyMapGeneratorInterface.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyMapInterface.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyMessageControl.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyMessageControlInterface.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyPlayer.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyPlayerInterface1.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyPlayerInterface2.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyPlot.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyPlotInterface1.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyRandomInterface.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyReplayInfo.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CySelectionGroup.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CySelectionGroupInterface.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyStructsInterface1.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyTeam.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyTeamInterface.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyUnit.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\CyUnitInterface1.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\FAssert.cpp|
||WARNING: Can't read file's timestamp: C:\Users\MyName\Desktop\FDialogTemplate.cpp|
LINK||fatal error LNK1181: cannot open input file 'boost_python-vc71-mt-1_32.lib'|
||=== Build failed: 1 error(s), 99 warning(s) (0 minute(s), 2 second(s)) ===|


Any advice?
 
Change the "Build target" drop-down to Final Release

where do I click this. The left side? or in a setting?
 
Yeah ! I finally was able to compile under Linux, thanks to your solution !

After the whole day trying to install visual studio under wine, with nothing even close to a result, I finally decided to give a try on this supposed outdated solution, that came out to be perfectly viable :) Made my first vanilla bts compile yesterday, and my first few modifications are compiling smoothly as I'm writing that. We maybe want to add a note somewhere for those who run civ4 under linux and want to try modding ? The article on the wiki is protected so I can't do it myself ...
 
Yeah ! I finally was able to compile under Linux
I planned on trying to do that, but haven't got around it to yet. Great work and please do write about it somewhere where I can read it and possibly link to it :)

Next question is if you can debug in wine. As important as debugging can be, the ability to compile even without debug support is a major milestone.

The article on the wiki is protected so I can't do it myself ...
I have no idea how to update Modiki. If I did, I would do something like link to an updated makefile
 
Last edited:
Yeah it has been quite a victory to get it running ^^ If you are interested, I'm under wine 1.7.9, winetricked d3dx9, devenum, msvcr100, msxml3, and quartz (not sure if any of these is needed, just added everything that could be usefull :p). All went smoothly except the sdk which didn't finished the install properly, but the files were correctly copied so no harm done.

Yep, maybe the debug mode is not working properly (actually I didn't try it myself), but it gives you the errors when compiling. So for small changes in the code, it's more than enough.

For the wiki, yep it would be nice to have some access to it in any way ^^
 
I used Codeblocks 17.12 and VC++ Toolkit 2003, but the compiler fails to build the project, with error C1034: windows.h: no include path set.
 
I am encountering tons of errors. Since they are all fatal errors, I can only fix the errors one by one. And there would be hundreds of them! :mad:
 
Sounds similar enough to the issue discussed here (missing sal.h):
https://forums.civfanatics.com/thre...compile-a-new-dll.608137/page-5#post-15981583

So a different version of the Windows SDK should include that file and perhaps others that you are missing. That being said, I've been using both versions 6.0 and 7.0A of the Windows SDK without problems in the past with Visual Studio. My understanding is that Visual Studio will look in its own folders (e.g. VC\include) for libraries not found in the MSVC toolkit and Windows SDK. Maybe you can get it to work by installing VS2010 (or a similarly old version) alongside the IDE that you want to use (like in this thread about VS2019); maybe an older Codeblocks version (from the WinXP era) would also do.
 
Not to shill my own thread, but have you tried this guide? It includes all you need and has been well tested and successfully used by many people. Unless you specifically want to keep using CodeBlocks, it's probably the most painless way to set up your compiler.
 
Back
Top Bottom