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)
(11 intermediate revisions by 2 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://msysgit.github.io/ 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.
 
  
== Installing dependencies ==
+
==Issues fixed==
 +
===Failed To Load Palette===
 +
Copy the X-Com resources to your '''bin''' folder, see [[Installing (OpenXcom)|Installing]] for more details.
  
Put the required library files in a '''deps''' folder inside the codebase folder (above the '''src''' folder) with the following structure:
+
===afxres.h not found===
* '''deps\include\SDL''' - SDL headers
+
Remove '''resource.h''' and '''OpenXcom.rc''' from the project.
* '''deps\include\yaml-cpp''' - yaml-cpp headers
 
* '''deps\lib\Win32''' - library x86 DLL and LIB files
 
* '''deps\lib\x64''' - library x64 DLL and LIB files
 
  
Alternatively, you can grab the pre-compiled dependencies with all the files already in place, and extract it to your codebase folder. Here are the versions available:
+
===MSVCR100.DLL not found===
* [http://openxcom.org/download/dev/openxcom-deps-win-vc2010.zip Visual C++ 2010]
+
Install these [http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=5555 files].
* [http://openxcom.org/download/dev/openxcom-deps-win-vc2013.zip Visual C++ 2013]
 
  
== Compiling and running ==
+
===Platform 'x64' cannot be found===
 +
Compile as Win32.
  
# Install Microsoft Visual C++ (part of Visual Studio). If you don't have it, you can get the [http://www.visualstudio.com/en-us/products/visual-studio-express-vs.aspx Express Edition] for free.
+
===unresolved external symbol "<blah-blah-blah> YAML <blah>"===
# Go to the '''src''' subfolder inside your codebase folder and open '''OpenXcom.2010.sln''' for VC++ 2010 and later. If you have an older version you will have to make your own VC++ project.
+
Try adding <code>YAML_CPP_DLL</code> define to the project properties
# 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].
 
 
 
'''Q: I get a warning about Platform 'x64' cannot be found.'''<br>
 
A: You're using a Visual C++ Express Edition which doesn't support x64 builds, but you can still compile for Win32.
 
  
 
[[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