Talk:Free Compiler Setup

From OrbiterWiki
Jump to: navigation, search

Starting from scratch[edit]

I spent several frustrating days trying to get the CustomMFD to compile and was glad to find this wiki page with one of the things I was missing; excluding msvsirt.lib. I still kept running into problems, however, since I moved the location of the API and wasn't able to change the ..\..\lib\ references through the IDE directly. Eventually I threw in the towl and created a new project from scratch rather than converting the sample project files to the new format (which I'm guessing had the hardcoded directories.)

I'm including my notes on how to set this up below in the hopes that 1) it may save someone hours of frustration, and 2) if anyone else has a similar experience they can incorporate some of this back into the main article. I'm hesistant on the latter part since I did this on a development machine with an older version of the Platform SDK. I don't want to clutter the main article if these problem were unique to me. With that said, here goes.

First, I moved the Orbiter SDK to the Projects directory and created a new "Empty Project" in Projects as well. I then copied over the cpp and h file for the CustomMFD sample and nothing else. After fixing the fstream include problem mentioned in the main article and setting the configuration to Release, I changed the following settings under Properties:

  • Configuration Properties:
  • General
  • Configuration Type: Dynamic Library (.dll)
  • C/C++
  • Genreal
  • Additional Include Directories:"C:\Program Files\Microsoft Platform SDK\Include";"C:\Documents and Settings\username\My Documents\Visual Studio 2005\Projects\Orbitersdk\include"
  • Warning Level: Level 3 (/W3)
  • Preprocessor
  • Preprocessor Definitions: _CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE
  • Code Generation
  • Runtime Library: Multi-threaded DLL (/MD)
  • Command Line: /O2 /I "C:\Program Files\Microsoft Platform SDK\Include" /I "C:\Documents and Settings\username\My Documents\Visual Studio 2005\Projects\Orbitersdk\include" /D "_CRT_SECURE_NO_DEPRECATE" /D "_CRT_NONSTDC_NO_DEPRECATE" /D "_WINDLL" /FD /EHsc /MD /Fo"Release\\" /Fd"Release\vc80.pdb" /W3 /nologo /c /TP /errorReport:prompt
  • Linker
  • General
  • Output File: $(OutDir)\$(ProjectName).dll
  • Additional Library Directories: "C:\Program Files\Microsoft Platform SDK\Lib";"C:\Documents and Settings\username\My Documents\Visual Studio 2005\Projects\Orbitersdk\lib"
  • Input
  • Additional Dependencies: user32.lib gdi32.lib orbiter.lib orbitersdk.lib
  • Ignore Specific Library: msvcirt.lib
  • Command Line: /OUT:"C:\Documents and Settings\username\My Documents\Visual Studio 2005\Projects\CustomMFD\Release\CustomMFD.dll" /NOLOGO /LIBPATH:"C:\Program Files\Microsoft Platform SDK\Lib" /LIBPATH:"C:\Documents and Settings\username\My Documents\Visual Studio 2005\Projects\Orbitersdk\lib" /DLL /MANIFEST /MANIFESTFILE:"Release\CustomMFD.dll.intermediate.manifest" /NODEFAULTLIB:"msvcirt.lib" /ERRORREPORT:PROMPT user32.lib gdi32.lib orbiter.lib orbitersdk.lib kernel32.lib

In the above settings list, I included the "Command Line" just as a reference. I didn't manually edit it. This setup was tested using Microsoft Visual Studio 2005 Version 8.0.50727.42.

One item of particular interest is the extra preprocessor includes. Without those, I was getting dozens of compile warnings related to the string functions. You can search the MSDN forums for more information on those.

And again, if anyone finds help with any of this, please merge the useful bits back to the main article.

--Rko281 07:17, 28 July 2006 (MSD)

Compiling ShuttlePB - Rank Beginner's Experiences[edit]

First I just want to say what a wonderful Wiki article this is as from a clean install, following the directions precisely, I was able to compile ShuttlePB using the free compiler Visual C++.

The whole thing (excluding download time) took 15 minutes and I have no experience with C and only hobby programming experience with a few other languages.

I did find that I had to add an additional include to get it to compile as the first build came up with an error that it couldn't find fstream.h (and no doubt if the build had not terminated with a fatal error it would not have found math.h or float.h). These files reside in a crt folder under the directory C:\Program Files\Microsoft Platform SDK\. I therfore added the following include path to those listed in te relevant section of the wiki article: C:\Program Files\Microsoft Platform SDK\crt\.

The dll was then built without a problem. I test flew it and the little ShuttlePB flies like a dream! Very exciting stuff!

Now to see if I can do a panel and an MFD. I hope the above amendment might help others using the free compiler and if this needs to be added to wiki then someone with more knowledge than me should feel free to add it or if a better way exists to include the crt directory then explicitly state in wiki how to do so.

Thank you to everyone who contributed to this article as it is absolutely superb.

C Senescall 10 September 2006


Compiling addons with Panels[edit]

I can confirm that the free compiler (ie Visual C++ Express) does compile addons with panels. SimonRigy 05:31, 7 December 2006 (MSK)

Renaming a project[edit]

Does anyone know how to rename a project and all the files in it cleanly? When I used the old 2003 command line compiler, I didn't have to worry about project files and such. I just copied a folder to a new name, renamed all the files, and did a search on the old name and replaced with the new name. Is there a way to do something like this with the 2005 compiler? I don't really want to have to rebuild a project from scratch every time. Kwan3217 05:49, 21 December 2006 (MSK)

Newest Platform SDK is missing files needed for resource file compilation[edit]

I tried downloading the "new version of Platform SDK that doesn't require validation" (Windows SDK for Windows Server 2008 and .NET Framework 3.5) and it didn't contain the files required to build resources - afxres.h and winres.h. In fact it didn't contain the include/atl and include/mfc folders at all. Fortunately after downloading the third mentioned PlatformSDK (Windows Server 2003 SP1 Platform SDK, no validation required) I got the files that I needed. Thanks for the great source, finally I can compile (other apps, too) with VS Express 2008.

Mattes Dolak, xoft.cz, 30 March 2009

-edit- working