Compiler and Linker Options for the RTX64 Application Wizard Using Visual Studio 2012

RTX64 SDK Versions Prior to RTX64 2014 with Service Pack 1

IMPORTANT! The content in this topic is only applicable to the Application Wizard available in versions of the RTX64 SDK prior to RTX64 3.7. For instructions on using the newer templates, see Using the RTX64 Application Template and Using the RTX64 RTDLL Template.

The RTX64 Application Wizard in Microsoft Visual Studio provides four configurations for creating applications or DLLs:

The tables below list the RTSS compiler and linker options that differ from the default Windows console application options and RTX product compiler and linker options.

Application Projects

Compiler Options

General
Option RTSSDebug RTSSRelease Debug Release
Additional Include Directories

$(RTX64SDKDIR <MAJORVERSION>)include;% + inherit

$(RTX64SDKDIR <MAJORVERSION>)include;% + inherit

$(RTX64SDKDIR <MAJORVERSION>)include;% + inherit

$(RTX64SDKDIR <MAJORVERSION>)include;% + inherit

Debug Information Format Program Database (/Zi) Program Database (/Zi) Program Database (/Zi) Program Database (/Zi)
Optimization
Option RTSSDebug RTSSRelease Debug Release
Optimization Disabled (/Od) Full Optimization (/Ox) Disabled (/Od) Maximize Speed (/02)
Whole Program Optimization No No No Yes (/GL)
Preprocessor
Option RTSSDebug RTSSRelease Debug Release
Preprocessor Defines _AMD64_ _M_AMD64_ UNDER_RTSS _DEBUG + inherit

NOTE: Include the UNDER_RTSS_UNSUPPORTED_CRT_APIS define to see what C Runtime functions have been deprecated.

_AMD64_ _M_AMD64_ UNDER_RTSS NDEBUG + inherit

NOTE: Include the UNDER_RTSS_UNSUPPORTED_CRT_APIS define to see what C Runtime functions have been deprecated.

_DEBUG _CONSOLE + inherit NDEBUG _CONSOLE + inherit

NOTE: Include the UNDER_RTSS_UNSUPPORTED_CRT_APIS define to see what C Runtime functions have been deprecated.

Code Generation
Option RTSSDebug RTSSRelease Debug Release
Enable Minimal Rebuild Yes (/Gm) No (/Gm-) Yes (/Gm) No (/Gm-)
Enable C++ Exceptions Yes (/EHsc) Yes (/EHsc) Yes (/EHsc) Yes (/EHsc)
Basic Runtime Checks Default Default Both (/RTC1, equiv. to /RTCsu) (/RTC1) Default
Runtime Library Multi-threaded Debug (/MTd) Multi-threaded (/MT) Multi-threaded Debug DLL (/MDd) Multi-threaded DLL (/MD)
Buffer Security Check Yes (/GS-) No (/GS-) Yes (/GS) Yes (/GS)
Floating Point Model Precise (/fp:precise) Precise (/fp:precise) Precise (/fp:precise) Precise (/fp:precise)

Linker Options

General
Option RTSSDebug RTSSRelease Debug Release
Additional Library Directories

$(RTX64SDKDIR <MAJORVERSION>)lib\$(Rtx64Platform);% + inherit

$(RTX64SDKDIR <MAJORVERSION>)lib\$(Rtx64Platform);% + inherit $(RTX64SDKDIR <MAJORVERSION>)lib\$(Rtx64Platform);% + inherit $(RTX64SDKDIR <MAJORVERSION>)lib\$(Rtx64Platform);% + inherit
Input
Option RTSSDebug RTSSRelease Debug Release
Additional Dependencies startupCRT.lib;libcmtd.lib; libcpmtd.lib;rtx_rtss.lib startupCRT.lib;libcmt.lib; libcpmt.lib;rtx_rtss.lib rtapi.lib + inherit rtapi.lib + inherit
Ignore All Default Libraries Yes (/NODEFAULTLIB) Yes (/NODEFAULTLIB) No No
Manifest
Option RTSSDebug RTSSRelease Debug Release
Generate Manifest No (/MANIFEST:NO) No (/MANIFEST:NO) Yes (/MANIFEST) Yes (/MANIFEST)
Enable User Account Control (UAC) No (/MANIFESTUAC:NO) No (/MANIFESTUAC:NO) Yes (/MANIFESTUAC:) Yes (/MANIFESTUAC:)
System
Option RTSSDebug RTSSRelease Debug Release
Subsystem

Native (/SUBSYSTEM: NATIVE)

Native (/SUBSYSTEM: NATIVE) Console (/SUBSYSTEM: CONSOLE) Console (/SUBSYSTEM: CONSOLE)
Driver Driver (/Driver) Driver (/Driver) Not Set Not Set
Advanced
Option RTSSDebug RTSSRelease Debug Release
Entry Point _RtapiProcessEntry or_RtapiProcessEntryCRT _RtapiProcessEntry or_RtapiProcessEntryCRT    
Randomized Base Address   Yes (/DYNAMICBASE) Yes (/DYNAMICBASE)
Data Execution Prevention (DEP)     Yes (/NXCOMPAT) Yes (/NXCOMPAT)
Target Machine MachineX64 (/MACHINE:X64) MachineX64 (/MACHINE:X64) MachineX64 (/MACHINE:X64) MachineX64 (/MACHINE:X64)

DLL Projects

Compiler Options

General
Option RTSSDebug RTSSRelease Debug Release
Additional Include Directories $(RTX64SDKDIR2)\include + Inherit $(RTX64SDKDIR2)\include + Inherit $(RTX64SDKDIR2)\include + Inherit $(RTX64SDKDIR2)\include + Inherit
Debug Information Format Program Database (/Zi) Program Database (/Zi) Program Database (/Zi)  
Warning Level Level3 (/W3) Level3 (/W3) Level3 (/W3) Level3 (/W3)
Optimization
Option RTSSDebug RTSSRelease Debug Release
Optimization Disabled (/Od) Full Optimization (/Ox) Disabled (/Od) Maximum Speed (/O2)
Whole Program Optimization No No No Yes (/GL)
Preprocessor
Option RTSSDebug RTSSRelease Debug Release
Preprocessor Defines _AMD64_ _M_AMD64_ UNDER_RTSS _DEBUG RTX64_EXPORTS + inherit _AMD64_ _M_AMD64_ UNDER_RTSS NDEBUG RTX64_EXPORTS + inherit _DEBUG _WINDOWS _USRDLL DLL64 _EXPORTS + inherit

WIN32 NDEBUG _WINDOWS _USRDLL DLL64_EXPORTS + inherit

Code Generation
Option RTSSDebug RTSSRelease Debug Release
Enable Minimal Rebuild Yes (/Gm) No (/Gm-) Yes (/Gm) No (/Gm-)
Enable C++ Exceptions Yes (/EHsc) Yes (/EHsc) Yes (/EHsc) Yes (/EHsc)
Basic Runtime Checks Default Default Both (/RTC1, equiv. to /RTCsu) (/RTC1) Default
Runtime Library Multi-threaded Debug (/MTd) Multi-threaded (/MT) Multi-threaded Debug DLL (/MDd) Multi-threaded DLL (/MD)
Buffer Security Check Yes (/GS-) No (/GS-) Yes (/GS) Yes (/GS)
Floating Point Model Precise (/fp:precise) Precise (/fp:precise) Precise (/fp:precise) Precise (/fp:precise)

Linker Options

Input
Option RTSSDebug RTSSRelease Debug Release
Additional Dependencies

startupDllCrt.lib;libcmtd.lib; libcpmtd.lib;rtx_rtss.lib

startupDllCrt.lib;libcmt.lib; libcpmt.lib;rtx_rtss.lib rtapi.lib + inherit rtapi.lib + inherit
Ignore All Default Libraries Yes (/NODEFAULTLIB) Yes (/NODEFAULTLIB) No No
Manifest
Option RTSSDebug RTSSRelease Debug Release
Generate Manifest No (/MANIFEST:NO) No (/MANIFEST:NO) Yes (/MANIFEST) Yes (/MANIFEST)
Enable User Account Control (UAC) No (/MANIFESTUAC:NO) No (/MANIFESTUAC:NO) Yes (/MANIFESTUAC:) Yes (/MANIFESTUAC:)
System
Option RTSSDebug RTSSRelease Debug Release
SubSystem Native (/SUBSYSTEM: NATIVE) Native (/SUBSYSTEM: NATIVE) Console (/SUBSYSTEM: CONSOLE) Console (/SUBSYSTEM: CONSOLE)
Driver Driver (/Driver) Driver (/Driver) Not Set Not Set
Advanced
Option RTSSDebug RTSSRelease Debug Release
Entry Point _RtapiDllEntry or _RtapiDllEntryCRT _RtapiDllEntry or_RtapiDllEntryCRT    
Randomized Base Address     Yes (/DYNAMICBASE) Yes (/DYNAMICBASE)
Data Execution Prevention (DEP)     Yes (/NXCOMPAT) Yes (/NXCOMPAT)
Target Machine MachineX64 (/MACHINE:X64) MachineX64 (/MACHINE:X64) MachineX64 (/MACHINE:X64) MachineX64 (/MACHINE:X64)