.\" Automatically generated by Pandoc 1.15.1 .\" .hy .TH "dotnet-compiler" "1" "January 2016" "" "" .SH NAME .PP dotnet\-compile \-\- Compiles source files for a single project to a binary format and saves to a target file. .SH SYNOPSIS .PP dotnet compile [\-\-native] [\-\-output] [\-\-temp\-output] [\-\-framework] [\-\-configuration] [\-\-output] [\-\-arch] [\-\-cpp] [\-ilc\-args] [\-\-verbose] .SH DESCRIPTION .PP The compile command compiles source files from a single project to a binary file, either intermediate language (IL) byte code or native machine code, depending on the options provided. The default option is compilation to IL byte code, but may change in the future. Users who want to benefit from incremental builds and who want to compile both the project and its dependencies should use the dotnet\-build(1) command. .PP The result of compilation is by default an executable file that can be ran. Output files, are written to the child \f[C]bin\f[] folder, which will be created if it doesn\[aq]t exist. Files will be overwritten as needed. The temporary files that are created during compilation are placed in the child \f[C]obj\f[] folder. .PP The executables also require a special configuration section in project.json: .IP .nf \f[C] {\ \ \ \ \ "compilationOptions":\ { \ \ \ \ \ \ "emitEntryPoint":\ true \ \ \ \ } } \f[] .fi .PP The default native [\-\-native] output is a native exe that conforms to the architecture of the underlying operating system (i.e. running on 64\-bit OS will produce a native 64\-bit exe). This can be overriden via the \-\-arch switch and specifying the wanted architecture. The executable has a default extension of "" on Linux and OS X and ".exe" on Windows. The source must include a static void main entry point, or it is an error, unless otherwise specified in the project.json. The dynamic library [dylib] output option has the default extension of ".so" on Linux/UNIX, ".dynlib" on OS X and ".dll" on Windows. The static library [staticlib] option has the default extension of ".a" on Linux, UNIX and OS X and ".lib" on Windows. .PP This command relies on the following artifacts: source files, project.json project file and the "lock" file (project.lock.json). Prior to invoking dotnet\-compile, dotnet\-restore(1) should be run to restore any dependencies that are needed for the application. .SH OPTIONS .PP \f[C]\-n,\ \-\-native\f[] .IP .nf \f[C] Compiles\ source\ to\ native\ machine\ code,\ for\ the\ local\ machine.\ The\ default\ is\ a\ native\ executable.\ The\ default\ executable\ extension\ is\ no\ extension\ and\ ".exe"\ on\ Windows. \f[] .fi .PP \f[C]\-t,\ \-\-temp\-output\ \f[] .IP .nf \f[C] Path\ where\ to\ drop\ the\ temporary\ binaries\ that\ are\ produced\ during\ compile.\ By\ default,\ the\ temporary\ binaries\ are\ dropped\ in\ the\ `obj`\ directory\ in\ the\ directory\ where\ `project.json`\ files\ lives,\ that\ is,\ where\ the\ application\ lives.\ \ \f[] .fi .PP \f[C]\-f,\ \-\-framework\ \f[] .IP .nf \f[C] Compile\ the\ application\ for\ the\ specified\ framework.\ If\ the\ framework\ is\ not\ specified,\ one\ specified\ in\ `project.json`\ will\ be\ used.\ \f[] .fi .PP \f[C]\-c,\ \-\-configuration\ \f[] .IP .nf \f[C] Compile\ the\ application\ under\ the\ specified\ configuration.\ If\ not\ specified,\ the\ configuration\ will\ default\ to\ "Debug".\ \ \f[] .fi .PP \f[C]\-o,\ \-\-output\ filename\f[] .IP .nf \f[C] Specifies\ the\ filename\ to\ be\ used.\ By\ default,\ the\ resulting\ filename\ will\ be\ the\ same\ as\ the\ project\ name\ specified\ in\ `project.json`,\ if\ one\ exists,\ or\ the\ directory\ in\ which\ the\ source\ files\ reside.\ \f[] .fi .PP \f[C]\-\-no\-project\-dependencies\f[] .IP .nf \f[C] Skips\ building\ cross\-project\ references.\ The\ effect\ of\ this\ is\ that\ only\ the\ current\ project\ will\ be\ built.\ \f[] .fi .PP \f[C]\-a,\ \-\-arch\f[] .IP .nf \f[C] The\ architecture\ for\ which\ to\ compile.\ x64\ only\ currently\ supported. \f[] .fi .PP \f[C]\-\-ilc\-args\ \f[] .IP .nf \f[C] Specified\ parameters\ are\ passed\ through\ to\ ILC\ and\ are\ used\ by\ the\ engine\ when\ doing\ native\ compilation.\ \f[] .fi .PP \f[C]\-\-cpp\f[] .IP .nf \f[C] Specify\ the\ C++\ code\ generator\ to\ do\ native\ compilation\ of\ code\ instead\ of\ the\ default\ RyuJIT.\ \ \ \ \ \ \ \f[] .fi .PP \f[C]\-v,\ \-\-verbose\f[] .IP .nf \f[C] Prints\ verbose\ logging\ information,\ to\ follow\ the\ flow\ of\ execution\ of\ the\ command. \f[] .fi .PP \f[C]\-h,\ \-\-help\f[] .IP .nf \f[C] Show\ short\ help.\ \f[] .fi .SH SEE ALSO .PP dotnet\-restore(1), dotnet\-publish(1), dotnet(1) .SH AUTHORS Zlatko Knezevic zlakne\@microsoft.com.