# Building a Linux Application

Use the cvicc command to build a LabWindows/CVI project or compile a source file.

The following commands are available:

Command | Action
cvicc | Shows the command syntax. Adding -help and -? also displays the command syntax.
cvicc project.prj | Builds the release target of project.prj.
cvicc project.prj project2.prj | Builds the release targets of project.prj and project2.prj.
cvicc file.c | Compiles file.c with default build options.
cvicc file.c file2.c | Compiles file.c and file2.c with default build options.
cvicc file.c project.prj | Compiles file.c with build options you set for project.prj. file.c does not need to be included in project.prj. project.prj is not built.
cvicc file.c file2.c project.prj | Compiles file.c and file2.c with build options you set for project.prj. The source files do not need be included in project.prj. project.prj is not built.

You can pass any number of source files to be compiled at one time. You can pass any number of projects to be built at one time. If you specify any number of source files, you can specify only one project file.

The compiler returns 0 if all targets are created successfully. If there is any error creating the target or the build could not start, the compiler returns -1.

The following additional arguments are available:

Command | Action
-debug | Creates the debuggable version of the target. This argument applies only for building projects.
-rebuild | Forces LabWindows/CVI to recompile all source files you specify and all source files in projects you specify.
-log logfile | Copies all build output to the logfile you specify.
/DDEFINE | Adds additional compiler defines compiler defines to any compiler defines that are set in the project. You can specify multiple defines.