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

From UFOpaedia
Jump to navigation Jump to search
(Created page with "== Getting the source == You will need a Windows Git client to grab the latest source code. === TortoiseGit === # Install [http://code.google.com/p/msysgit Git for Windows]. W...")
 
 
(26 intermediate revisions by 6 users not shown)
Line 1: Line 1:
== Getting the source ==
+
== Libraries ==
 +
* SDL: https://libsdl.org/release/SDL-devel-1.2.15-VC.zip
 +
* SDL_mixer: https://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-devel-1.2.12-VC.zip
 +
* SDL_image: https://www.libsdl.org/projects/SDL_image/release/SDL_image-devel-1.2.12-VC.zip
  
You will need a Windows Git client to grab the latest source code.
+
==Setting up==
  
=== TortoiseGit ===
+
# 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.
  
# 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'''.
+
==Compiling (x32 Release)==
# Install [http://code.google.com/p/tortoisegit/ TortoiseGit]. Restart the computer if asked.
+
# Download and install Visual Studio. A free version is available [https://www.visualstudio.com/products/visual-studio-community-vs here].
# 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.
+
# Download the following dependencies for the appropriate version of Visual Studio:
# Go to the folder where you wanna put the code, right-click on it and select '''Git Clone'''.
+
#* [http://openxcom.org/download/dev/openxcom-deps-win-vc2010.zip 2010]
# 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.
+
#* [http://openxcom.org/download/dev/openxcom-deps-win-vc2013.zip 2013]
# In the future, you can stay up to date by right-clicking your folder and selecting '''Git Sync''' to '''Pull''' the latest code.
+
#* [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'''
  
=== Git Extensions ===
+
* Certain anti-viruses such as Avast may stop the project from building. Add the OpenXcom folder as an expection.
 +
* See the [http://msdn.microsoft.com/library/dd831853.aspx Visual Studio Documentation] for more information on the IDE.
  
# Install [http://code.google.com/p/gitextensions/ Git Extensions] for your system.
+
==Issues fixed==
# TODO
+
===Failed To Load Palette===
 +
Copy the X-Com resources to your '''bin''' folder, see [[Installing (OpenXcom)|Installing]] for more details.
  
== Installing dependencies ==
+
===afxres.h not found===
 +
Remove '''resource.h''' and '''OpenXcom.rc''' from the project.
  
Put the required library files in a '''deps''' folder inside the codebase folder with the following structure:
+
===MSVCR100.DLL not found===
* '''deps\include\SDL''' - SDL headers
+
Install these [http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=5555 files].
* '''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.
+
===Platform 'x64' cannot be found===
 +
Compile as Win32.
  
== Compiling and running ==
+
===unresolved external symbol "<blah-blah-blah> YAML <blah>"===
  
# 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.
+
Try adding <code>YAML_CPP_DLL</code> define to the project properties
# 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.
 
  
== FAQ ==
+
===linker errors===
 +
<code>
 +
2>CVTRES : fatal error CVT1100: duplicate resource.  type:MANIFEST, name:1, language:0x0409
  
TODO
+
2>LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt
 +
</code>
 +
 
 +
Right-click in Solution Explorer on the openxcom project, click Properties.
 +
Linker -> Manifest File -> Generate Manifest = No (/MANIFEST:NO)
  
 
[[Category:OpenXcom]]
 
[[Category:OpenXcom]]

Latest revision as of 14:51, 6 April 2024

Libraries

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

linker errors

2>CVTRES : fatal error CVT1100: duplicate resource. type:MANIFEST, name:1, language:0x0409

2>LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt

Right-click in Solution Explorer on the openxcom project, click Properties. Linker -> Manifest File -> Generate Manifest = No (/MANIFEST:NO)