Difference between revisions of "Building with MSVC"

From ReactOS Wiki
Jump to: navigation, search
m (wikify)
Line 3: Line 3:
 
=== Setting up the environment ===
 
=== Setting up the environment ===
  
1. Install MSVC and WDK
+
# Install MSVC and WDK
 
+
# Tools -> Options -> Projects and Solutions -> VC++ Directories, Executable files, add path to X:\RosBE\4.1.3\bin (provided you have as.exe file from RosBE in that directory).
2. Tools -> Options -> Projects and Solutions -> VC++ Directories, Executable files, add path to X:\RosBE\4.1.3\bin (provided you have as.exe file from RosBE in that directory).
+
# In the same dialog as above, set paths to WDK includes (F:\WinDDK\6000\inc\api, F:\WinDDK\6000\inc\crt, F:\WinDDK\6000\inc\ddk)
 
+
# In the same dialog as above, set paths to WDK libraries for linking (F:\WinDDK\6000\lib\wnet\i386 and [if it's necessary] F:\WinDDK\6000\lib\crt\i386)
3. In the same dialog as above, set paths to WDK includes (F:\WinDDK\6000\inc\api, F:\WinDDK\6000\inc\crt, F:\WinDDK\6000\inc\ddk)
 
 
 
4. In the same dialog as above, set paths to WDK libraries for linking (F:\WinDDK\6000\lib\wnet\i386 and [if it's necessary] F:\WinDDK\6000\lib\crt\i386)
 
  
 
=== Making / compiling the project ===
 
=== Making / compiling the project ===
  
1. "make msvc9" on a tree, this will result in a project files being created automatically, and a big ReactOS_auto.sln solution file with ALL projects there. Beware, it's huge!
+
# <tt>make msvc9</tt> on a tree, this will result in a project files being created automatically, and a big ReactOS_auto.sln solution file with ALL projects there. Beware, it's huge!
 
+
# Open up the solution in the MSVC, change Configuration to "Release" or "Debug" (but not the one with "ReactOS Headers").
2. Open up the solution in the MSVC, change Configuration to "Release" or "Debug" (but not the one with "ReactOS Headers").
+
# Patch your WDK headers with a special diff
 
+
# OBJECT_INFORMATION_CLASS is masked by a define, move it out of it (obtypes.h)
3. Patch your WDK headers with a special diff
 
 
 
4. OBJECT_INFORMATION_CLASS is masked by a define, move it out of it (obtypes.h)
 
  
 
== Unsolved problems ==
 
== Unsolved problems ==
  
1. zw.S for ntoskrnl is being generated in obj-i386/ntoskrnl/ex directory, but msvc project looks up in source tree ntoskrnl/ex dir. Temporary solved by either copying the file, or re-adding the file from the correct place.
+
# zw.S for ntoskrnl is being generated in obj-i386/ntoskrnl/ex directory, but msvc project looks up in source tree ntoskrnl/ex dir. Temporary solved by either copying the file, or re-adding the file from the correct place.
 
+
# Autogenerated obj-i386/include/reactos/buildno.h file is needed for compilation. Hacklution: copy it to include/reactos
2. Autogenerated obj-i386/include/reactos/buildno.h file is needed for compilation. Hacklution: copy it to include/reactos
 
  
  
 
[[Category:Development]]
 
[[Category:Development]]
 
[[Category:Building]]
 
[[Category:Building]]

Revision as of 16:57, 18 November 2009

Building the kernel with MSVC 9.0 (codename Orcas)

Setting up the environment

  1. Install MSVC and WDK
  2. Tools -> Options -> Projects and Solutions -> VC++ Directories, Executable files, add path to X:\RosBE\4.1.3\bin (provided you have as.exe file from RosBE in that directory).
  3. In the same dialog as above, set paths to WDK includes (F:\WinDDK\6000\inc\api, F:\WinDDK\6000\inc\crt, F:\WinDDK\6000\inc\ddk)
  4. In the same dialog as above, set paths to WDK libraries for linking (F:\WinDDK\6000\lib\wnet\i386 and [if it's necessary] F:\WinDDK\6000\lib\crt\i386)

Making / compiling the project

  1. make msvc9 on a tree, this will result in a project files being created automatically, and a big ReactOS_auto.sln solution file with ALL projects there. Beware, it's huge!
  2. Open up the solution in the MSVC, change Configuration to "Release" or "Debug" (but not the one with "ReactOS Headers").
  3. Patch your WDK headers with a special diff
  4. OBJECT_INFORMATION_CLASS is masked by a define, move it out of it (obtypes.h)

Unsolved problems

  1. zw.S for ntoskrnl is being generated in obj-i386/ntoskrnl/ex directory, but msvc project looks up in source tree ntoskrnl/ex dir. Temporary solved by either copying the file, or re-adding the file from the correct place.
  2. Autogenerated obj-i386/include/reactos/buildno.h file is needed for compilation. Hacklution: copy it to include/reactos