Difference between revisions of "Compiling with Microsoft Visual C++ (OpenXcom)"

From UFOpaedia
Jump to navigation Jump to search
(→‎Issues fixed: Fix for the issue with linking precompiled yaml-cpp dll)
(20 intermediate revisions by 4 users not shown)
Line 1: Line 1:
== Getting the source ==
+
==Setting up==
  
You will need a Windows Git client to grab the latest source code.
+
# Download [https://windows.github.com/ GitHub for Windows].
 +
# Download the source code from [https://github.com/SupSuper/OpenXcom here], by pushing '''Clone in Desktop'''.
 +
# Download and install [http://store.steampowered.com/app/7760/ X-COM: UFO Defense].
 +
# Navigate to '''<path-to-game>\XCOM\''' and copy the following folders.
 +
<pre>
 +
GEODATA
 +
GEOGRAPH
 +
ROUTES
 +
MAPS
 +
SOUND
 +
TERRAIN
 +
UFOGRAPH
 +
UFOINTRO
 +
UNITS
 +
</pre>
 +
5. Navigate to '''<path-to-repo>\OpenXcom\bin\UFO''' and paste the folders in there.  
  
=== TortoiseGit ===
+
==Compiling (x32 Release)==
 +
# Download and install Visual Studio. A free version is available [https://www.visualstudio.com/products/visual-studio-community-vs here].
 +
# Download the following dependencies for the appropriate version of Visual Studio:
 +
#* [http://openxcom.org/download/dev/openxcom-deps-win-vc2010.zip 2010]
 +
#* [http://openxcom.org/download/dev/openxcom-deps-win-vc2013.zip 2013]
 +
#* [http://openxcom.org/download/dev/openxcom-deps-win-vc2015.zip 2015]
 +
#* [http://openxcom.org/download/dev/openxcom-deps-win-vc2017.zip 2017]
 +
# Extract the archive's contents to '''<path-to-repo>\OpenXcom\'''
 +
#Navigate to '''<path-to-repo>\OpenXcom\src''' and open '''OpenXcom.2010.sln'''.
 +
#Compile the project by right clicking on '''OpenXcom''' and selecting '''Build'''. Upgrading the project may be needed on newer versions of Visual Studio.
 +
#Navigate to '''<path-to-repo>\OpenXcom\bin''' then copy all the '''DLLs''' from '''<path-to-repo>\OpenXcom\bin\Win32''' to '''<path-to-repo>\OpenXcom\bin\Win32\Release'''
 +
#Move the '''common''', '''UFO''' and '''standard''' folders from '''<path-to-repo>\OpenXcom\bin''' to '''<path-to-repo>\OpenXcom\bin\Win32\Release'''
  
# Install [http://code.google.com/p/msysgit Git for Windows]. When asked, select '''Use Git Bash only''', '''Use OpenSSH''' and '''Checkout Windows-style, commit Unix-style line endings'''.
+
* Certain anti-viruses such as Avast may stop the project from building. Add the OpenXcom folder as an expection.  
# Install [http://code.google.com/p/tortoisegit/ TortoiseGit]. Restart the computer if asked.
+
* See the [http://msdn.microsoft.com/library/dd831853.aspx Visual Studio Documentation] for more information on the IDE.
# Configure TortoiseGit by right-clicking any folder and selecting '''TortoiseGit > Settings'''. Select '''Git > Config''', fill out your '''Username''' and '''E-mail''' as will be displayed in your commits, and make sure '''AutoCrlf''' and '''SafeCrlf''' are checked.
 
# Go to the folder where you wanna put the code, right-click on it and select '''Git Clone'''.
 
# Fill out the '''Url''' to the repository (the official one or your own fork), check the '''Directory''' is correct and press '''OK'''. Better get a drink, it's gonna be a while.
 
# In the future, you can stay up to date by right-clicking your folder and selecting '''Git Sync''' to '''Pull''' the latest code.
 
  
=== Git Extensions ===
+
==Issues fixed==
 +
===Failed To Load Palette===
 +
Copy the X-Com resources to your '''bin''' folder, see [[Installing (OpenXcom)|Installing]] for more details.
  
# Install [http://code.google.com/p/gitextensions/ Git Extensions] for your system.
+
===afxres.h not found===
# TODO
+
Remove '''resource.h''' and '''OpenXcom.rc''' from the project.
  
== Installing dependencies ==
+
===MSVCR100.DLL not found===
 +
Install these [http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=5555 files].
  
Put the required library files in a '''deps''' folder inside the codebase folder with the following structure:
+
===Platform 'x64' cannot be found===
* '''deps\include\SDL''' - SDL headers
+
Compile as Win32.
* '''deps\include\yaml-cpp''' - yaml-cpp headers
 
* '''deps\lib''' - library DLL and LIB files
 
  
Alternatively, you can grab the [http://openxcom.ninex.info/download/misc/openxcom-deps-win32-vc.zip pre-compiled dependencies] with all the files already in place, and extract it to your codebase folder.
+
===unresolved external symbol "<blah-blah-blah> YAML <blah>"===
 
+
Try adding <code>YAML_CPP_DLL</code> define to the project properties
== Compiling and running ==
 
 
 
# Install Microsoft Visual C++ (part of Visual Studio). If you don't have it, you can get [http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express VC++ 2010 Express Edition] for free.
 
# Go to the '''src''' subfolder inside your codebase folder and open '''OpenXcom.2010.sln''' if you have VC++ 2010 or '''OpenXcom.2008.sln''' if you have VC++ 2008. You might get issues using older versions, but you can try just editing the version number in '''OpenXcom.2008.sln''' and '''OpenXcom.2008.vcproj''' to match.
 
# Right-click the '''OpenXcom''' project file and select '''Properties'''.
 
# Pick '''All Configurations''', go to '''Debugging''' and replace the '''Working Directory''' with '''..\bin'''.
 
# Compile and run the project by pressing the '''Start Debugging''' button with a green arrow on the top toolbar.
 
# See the [http://msdn.microsoft.com/library/dd831853.aspx Visual Studio Documentation] for more information on the IDE.
 
 
 
== FAQ ==
 
 
 
'''Q: I get a Failed To Load Palette error.'''<br>
 
A: Copy the X-Com resources to your '''bin''' folder, see [[Installing (OpenXcom)|Installing]] for more details.
 
 
 
'''Q: I get an error about afxres.h not being found.'''<br>
 
A: You're using a Visual C++ Express Edition which doesn't support Resource files, just remove '''resource.h''' and '''OpenXcom.rc''' from the project.
 
 
 
'''Q: I get an error about MSVCR100.DLL not being found.'''<br>
 
A: You're using the pre-built dependencies with an old Visual C++ version so you need to install the [http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=5555 VC++ 2010 Redist].
 
  
 
[[Category:OpenXcom]]
 
[[Category:OpenXcom]]

Revision as of 20:59, 5 May 2018

Setting up

  1. Download GitHub for Windows.
  2. Download the source code from here, by pushing Clone in Desktop.
  3. Download and install X-COM: UFO Defense.
  4. Navigate to <path-to-game>\XCOM\ and copy the following folders.
GEODATA
GEOGRAPH
ROUTES
MAPS
SOUND
TERRAIN
UFOGRAPH
UFOINTRO
UNITS 

5. Navigate to <path-to-repo>\OpenXcom\bin\UFO and paste the folders in there.

Compiling (x32 Release)

  1. Download and install Visual Studio. A free version is available here.
  2. Download the following dependencies for the appropriate version of Visual Studio:
  3. Extract the archive's contents to <path-to-repo>\OpenXcom\
  4. Navigate to <path-to-repo>\OpenXcom\src and open OpenXcom.2010.sln.
  5. Compile the project by right clicking on OpenXcom and selecting Build. Upgrading the project may be needed on newer versions of Visual Studio.
  6. Navigate to <path-to-repo>\OpenXcom\bin then copy all the DLLs from <path-to-repo>\OpenXcom\bin\Win32 to <path-to-repo>\OpenXcom\bin\Win32\Release
  7. Move the common, UFO and standard folders from <path-to-repo>\OpenXcom\bin to <path-to-repo>\OpenXcom\bin\Win32\Release
  • Certain anti-viruses such as Avast may stop the project from building. Add the OpenXcom folder as an expection.
  • See the Visual Studio Documentation for more information on the IDE.

Issues fixed

Failed To Load Palette

Copy the X-Com resources to your bin folder, see Installing for more details.

afxres.h not found

Remove resource.h and OpenXcom.rc from the project.

MSVCR100.DLL not found

Install these files.

Platform 'x64' cannot be found

Compile as Win32.

unresolved external symbol "<blah-blah-blah> YAML <blah>"

Try adding YAML_CPP_DLL define to the project properties