Difference between revisions of "Talk:Free Compiler Setup"

From OrbiterWiki
Jump to navigation Jump to search
Line 50: Line 50:
  
 
C Senescall    10 September 2006
 
C Senescall    10 September 2006
 +
 +
 +
== Compiling addons with Panels ==
 +
 +
I can confirm that the free compiler (ie Visual C++ Express) does compile addons with panels. [[User:SimonRigy|SimonRigy]] 05:31, 7 December 2006 (MSK)

Revision as of 02:31, 7 December 2006

Starting from scratch

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

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

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