Frequently Asked Questions

We do our best to try and answer the most frequently asked questions in this section. If you do not find an answer here or in the Knowledge Base website page, please let us know by opening a ticket in our Support Center and we will try to respond as promptly as possible.

Q: I've noticed some files with the "vcx0_ib_" prefix (x can be "6", "7", or "8") appear in the intermediate directory of my project during Incredibuild operation. Why does this occur?

A: This is normal. Incredibuild generates separate debug information and .idb files for each of the Agents participating in the build, and these are stored in the intermediate folder.

Q: I'm comparing OBJ/EXE files that MSVC created to those of Incredibuild – and they're not the same. Why?

A: There are some differences between Incredibuild and MSVC output, caused by debug information placement, timestamps in the binary files, OBJ file order in the linking phase, and so on. This is normal and does not affect the application's behavior.

Q: How can a user disable an Agent temporarily to make sure Incredibuild does not use the machine's CPU?

A: By right-clicking the Incredibuild tray-icon and selecting Disable Agent. This can also be done remotely from the Coordinator Monitor.

Q: I'm trying to run BuildConsole from the command line but keep getting the "'BuildConsole' is not recognized as an internal or external command, operable program or batch file." error. Why?

A: The PATH environment variable is not set to the Incredibuild installation folder. Note that you can only use BuildConsole in computers that have Microsoft Visual Studio installed.

Q: When building projects, only my machine's Agent participates in the build!

A: This can be due to a number of reasons:

  • The Agent on your machine is not subscribed on the Coordinator machine. Check with your system administrator to see if your license allows adding your machine to the list of subscribed Agents.

  • The extension package required for building the project is not allocated to your Agent. Allocating build system packages is done from the Coordinator Monitor. Check with your system administrator to see if your license allows allocation of the required extension package to your machine.

  • The project contains a very small amount of files, and therefore they do not get distributed between the Agents.

  • The Coordinator name or port set in the Agent Settings dialog in your machine is incorrect.

  • The Coordinator is currently unavailable, either because the machine it is running on is shut down or disconnected from the network, or because the Coordinator service is not active.

  • Your machine is disconnected from the network. Check network cable and settings.

  • Network security restrictions are blocking TCP/IP access from your machine to either the Coordinator machine or the Agent machines in the network.

  • Your trial period for using Incredibuild has expired.

Q: I can't see the Incredibuild tray-icon display. How do I restore it?

A: From the Start menu, select Programs files->Incredibuild->Incredibuild Agent Tray-Icon to restore the tray-icon display. If you wish the Incredibuild tray-icon to always be displayed, verify that the Enable tray-icon display on system start-up option is selected in the Agent Settings dialog "Tray-Icon" page.

Q: I can't see the Incredibuild menu/toolbar in Microsoft Studio! Where's it gone?

A: Use the "Visual Studio Add-in" section in the Agent Settings dialog to restore the menu and toolbar, using either the "Add-in Installation removal' section or, for MSVC 6.0, the "Fix menu" and "Fix Toolbar" buttons. Note that the MSVC 6.0 add-in requires the add-in to be installed separately for each user using the machine. This can be done using this dialog. If only the toolbar is missing, the explanation could be that it is simply hidden. To check if this is the case, right-click on the toolbar section in Microsoft Studio and verify that all listed toolbars beginning with the word "Toolbar" are selected.

Q: Browse information is not generated when building a project with Incredibuild, although it is generated when building with MSVC. Why?

A: Incredibuild keeps a global setting to determine whether to generate browse information or not. This can be set from the "Build System" tab in the Agent Settings dialog. You can also override this setting for a particular project when building a project from the Batch Build dialog.

Q: I'm getting the following warning: "Incredibuild: build system warning: #import directives in the precompiled header should use the no_implementation attribute. See FAQ section in documentation for more details.". What's wrong?

A: Incredibuild is notifying you of an #import directive that was found in the precompiled header source file, without the "no_implementation" keyword. This is problematic for two reasons:

You may get "file not found" compilation errors when a source file #includes a .TLI file that was generated by this PCH. Using #import with the "no_implementation" flag in the PCH file, as described below, will solve this.Not using this keyword may slow down compilation as a result of larger PCH files.The following excerpt is from the MSDN Library "#import" topic:"The implementation_only attribute is intended for use in conjunction with the no_implementation attribute as a way of keeping the implementations out of the precompiled header (PCH) file. An #import statement with the no_implementation attribute is placed in the source region used to create the PCH. The resulting PCH is used by a number of source files. An #import statement with the implementation_only attribute is then used outside the PCH region. You are required to use this statement only once in one of the source files. This will generate all the required wrapper member functions without additional recompilation for each source file."

Q: When compiling, I get a "No such file or directory" error on a header file/type library file.

A: Check if this file is generated by a custom build step or an MIDL step in another project in the workspace. If so, this may be caused by a missing inter-project dependency definition in the workspace. See the documentation section on "Dependency Issues" (under "Advanced Topics") for more information.

Q: When compiling, it seems that the compiler is using a different/out-of-date version of a header file/type library file.

A: See the answer in the previous question.

Q: Looking at the Output view in the Build Monitor, it looks like the display is missing output for many files that have already been compiled. What's wrong?

A: During compilation, Incredibuild buffers the build output for some of the configurations to make sure that different configurations' outputs do not mix with each other. To view all output messages for each configuration, use the Projects view. The output display will gradually contain the entire build output.

Q: When running an incremental build with MSVC after building with Incredibuild, I get the following build warning: "warning C4652: compiler option 'Generate Browser Info' inconsistent with precompiled header; current command-line option will override that defined in the precompiled header". What is wrong?

A: There is a conflict between Incredibuild's browse information creation options and the way MSVC handles browse information for that project. To overcome this, do one of the following:

  • If you wish to use browse information:
    • Set the configuration's project settings to generate browse information (this is done by selecting the browse info check boxes on both the C/C++ page and the Browse info page in MSVC's project settings dialog).
    • Set Incredibuild's browse information creation settings (in the Agent Settings dialog) to create browse information for this configuration (this can be done by selecting "Always" or "According to 'Generate browse info' project setting", or by using a matching search phrase).
    • Rebuild the project.
  • If you do not wish to use browse information:
    • Set the configuration's project settings NOT to generate browse information.
    • Set Incredibuild's browse information creation settings (in the Agent Settings dialog) NOT to create browse information for this configuration (this can be done by selecting "Never" or "According to 'Generate browse info' project setting", or by using a matching search phrase).
    • Rebuild the project.

Q: The Incredibuild Agent fails to start on my machine. What's wrong?

A: This could be happening for a number of reasons. Here are some initial steps to help understand the cause of this:

  1. If the Incredibuild Agent tray-icon display indicates an error graphic, click the tray-icon once to display the last error encountered by the Incredibuild Agent service, and see if this leads to the source of the problem.
  2. Try replacing the following files, which should appear in your Windows/System32 folder, by copying them from another machine, with the same operating system that has a working Agent installed:perfc009.datperfd009.dat   If not, run the Windows setup installation to restore these system files.
  3. Contact Incredibuild Support and provide as much detail as you can about the problem.

Q: When running a build, some Agents start compiling files, but stop before the compilation is finished, causing the file's compilation bar to disappear. What's wrong?

A: This could be happening because of a network configuration error. For Incredibuild to operate properly, all of the following tests should work:

  • Ping the problem Agent from the building machine, using its IP address.
  • Ping the problem Agent from the building machine, using its network name.
  • Ping the building machine from the problem Agent, using its IP address.
  • Ping the building machine from the problem Agent, using its network name.

Q: I've installed a permanent/temporary Incredibuild license, but when trying to build, I get a message saying my build will run in standalone mode. What am I doing wrong?

A: Either your Agent is unsubscribed, or the required build system extension package has not been allocated to your Agent. To correct this, do the following:

  1. Open the Coordinator Monitor.
  2. Locate your Agent in the Agent list.
  3. If the 'Status' column specifies 'Unsubscribed', right-click the Agent and select Subscribe.
  4. If the 'Subscribe' option is grayed out, your license has reached its limit of subscribed Agents and you must first unsubscribe an Agent.
  5. If the 'Packages' column specifies 'Helper' or a different MSVC version from the one you are using to build your project, right-click the Agent and use the 'Allocate Package' option to allocate the appropriate build system extension package to your Agent.

Q: I've installed a permanent/temporary Incredibuild license supporting multiple CPUs/cores, but only one processor is used in builds. What should I do?

A: Your Agent is probably missing the "Multiple CPU(s)/Core(s)" extension package. To correct this, do the following:

  1. Open the Coordinator Monitor.
  2. Locate your Agent in the Agent list.
  3. Right-click the Agent and select Allocate Package->Multiple CPU(s)/Core(s).
  4. If this option is grayed out, your license has used up all of its "Multiple CPU(s)/Core(s)" extension packages, and you must first deallocate this package from one of the other Agents.

Q: I'm getting the following warning:"One or more source files use automatic precompiled headers. This setting is not recommended and may degrade build performance. See FAQ section in documentation for more details."What's wrong?

A: Your project is using "Automatic" precompiled headers. When used with Incredibuild, this setting has a negative impact on build performance and is therefore not recommended. To resolve this situation, either use standard (header-based) precompiled headers or turn off the use of precompiled headers altogether.

Q: I can't get Edit & Continue to work. What's wrong?

A: Incredibuild supports Edit & Continue, but requires files to be used with this feature to be specified in advance using the Solution Settings dialog. For more information, see this page in the user manual.

Q: When building, I see two compilation bars showing the same file being compiled on two different machines. Is this normal?

A: Yes, this is actually an optimization feature. In order to prevent situations in which a build is slowed down due to a slow remote Agent, Incredibuild sometimes doubles a file's compilation on the local machine to speed up the build. In this scenario, the same file could appear to be compiled twice.

Q: Why does Visual Studio crash when I move the internal Build Monitor tab? 

A: This is a known Microsoft bug in Visual Studio 16.8.2 that was resolved in 16.8.5.

Pricing & Licensing

Q: How many Coordinators and Agents should I use?

A: The number of Coordinators in your license corresponds to the number of working groups that will be using Incredibuild. Each Coordinator will control a separate group of Agents that can run distributed builds among themselves. Distributing your Agents between more than one Coordinator can be done at no additional charge; however, keep in mind that distributing a number of Agents between more than one Coordinator means less processing power for each of the groups. There are two basic types of Agents: Helper Agents, which cannot initiate builds but can contribute processing power to distributed builds, and Builder Agents, which can initiate distributed builds. Builder Agents also include the Helper Agent functionality. You would typically need Builder Agents for all machines that start builds, and a few Helper Agents for machines that can contribute processing power to distributed builds. The best way to figure out which license structure best suits your need is to try the Incredibuild ROI Calculator. This provides a detailed explanation as well as a price quote.

Q: How do I add more Agents to an existing license?

A: Send mail to our Sales department at sales@Incredibuild.com, stating your current license details and required change in the license. We will contact you and provide you with instructions for updating your license.

Q: My trial period has expired, and I need a few more days to finalize the purchase procedure. Can I get an extension?

A: Sure. Just fill in the Trial Period Extension Form and you will receive a 2-week extension file within a couple of days.

Q: I am a licensed user. I want to split my license between several physical sites. Is this possible?

A: Yes. This service is provided free of charge for licenses with an active maintenance service. If you wish to transfer some of the Agents used in one location to another location, contact us at sales@Incredibuild.com and we will provide you with details.

Technical Information

Q: Am I creating a dependency of any kind on Incredibuild? Can I still use Visual Studio's Build command with Incredibuild installed on my machine?

A: MSVC's standard Build operations (from the Visual Studio IDE and from the command line) can be used at all times regardless of Incredibuild's presence. What this means is that you always have the option to go back to building as usual. If build scripts are used, they have to undergo a minor change (replacing VC's command-line build tool with Incredibuild's).

Q: Am I required to make changes in my C++ project for Incredibuild to work?

A: No. Incredibuild can build any C/C++ project that can be built using Visual Studio. In some cases, it is necessary to add project dependency information to allow multiple projects to be built in the correct order.

Q: How does the Microsoft Visual Studio environment change after installing Incredibuild?

A: An Incredibuild menu and toolbar containing Build, Rebuild, Clean, Batch Build, and Stop Current Build commands becomes available. Simply use these commands instead of VC's. When building, the output is displayed in a special "Build Monitor" display (also integrated with the environment) that contains the build output as well as many other useful features, such as a build progress bar, a visual display of the progress, timings, and so on.

Q: Can Incredibuild be used from the command-line or from build scripts?

A: Yes. Incredibuild includes a strong command-line interface for building projects, which can easily be integrated in any script that runs msdev.exe/devenv.exe/msbuild.exe to build projects. In fact, BuildConsole.exe supports the devenv/msdev command line syntax so you would typically only need to replace the executable name in your script!

Q: Which portions of my build does Incredibuild distribute when building Visual Studio projects?

A: Incredibuild distributes C/C++ compilation and MIDL steps. In addition, any custom build steps, build events (pre-build, pre-link, post-build), and files running custom rules may be distributed using the Dev Tools extension package.

Q: How can I know how effective Incredibuild will be when used to compile my C++ project?

A: The best way is to simply try it. However, experience shows that in the vast majority of projects that are over just a few files in size, Incredibuild reduces full build time down to around 10%-30%, and incremental build times to anything between 10% and 75% (depending on the number of files being recompiled).

Q: What types of file formats can Incredibuild accept as input?

A: Incredibuild is compatible with Microsoft Visual C++ 6.0 project DSP/DSW files, Microsoft Visual C++, .VCPROJX and .SLN Files, MSVC 2008/2005/.NET .VCPROJ and .SLN files, Intel C++ Compiler .icproj files, and embedded VC 4.0 .vcw/.vcp files.Incredibuild can also work using a variety of Make and build tools, such as Make, gmake, vsimake, GnuMake, jam, and those listed in Supported Make and Build Tools.

Q: Can Incredibuild alter the compilation or link process, potentially creating problems in the build output?

A: No. Incredibuild uses the same executables for all build steps (compilation, linking, etc.). Incredibuild is not a new compiler, but rather a more efficient method of using your compiler.

Q: Can Incredibuild slow down other user's machines in my organization as a result of the distributed compilation process?

A: Incredibuild Agents automatically adjust their behavior according to the activity level in the machine they are installed on. By default, Agents run compilations with a process priority that is lower than that of other processes in the system. This makes the operating system allocate less CPU resources to Incredibuild than to user and operating system processes. So, a computer that is unused runs Incredibuild at full pace, while on a more active computer the Agent maintains its activity at a lower level. Normally, users do not even feel the presence of an Incredibuild Agent on their machine.

Q: Won't Incredibuild use up all of my LAN bandwidth?

A: No. A lot of effort has been put into network optimization tactics, such as caching and compression, to make sure network traffic is kept at a minimum. In standard networks, Incredibuild's presence is hardly felt at all, even when several compilations are taking place.

Q: My workstations do not share the same configuration. They have different operating systems, versions of MSVC, service packs, dll versions etc. Will this pose any problems?

A: When executing build operations on a remote Agent, all actions are performed using a "Virtual Environment" that acts as a copy of the original building machine's environment. This means that the compiler executables used in the compilation are identical to those found in the building machine. In fact, they don't even have to exist on the remote Agent!

Q: I noticed a folder named "File Cache" under my Incredibuild installation folder that is taking up a lot of disk space. What does it do?

A: This folder caches source files transferred from remote Agents, in order to speed up distributed builds. It should be large enough to accommodate all of your source tree and any system include files being used. The folder size and location can be adjusted from the Agent Settings dialog and the Coordinator monitor.

Q: How can I adjust my scripts to identify if a build was run with Incredibuild?

A: Incredibuild automatically defines an environment variable called "IncredibuildContext", that has the value "1" when running builds. Your custom build steps can query this environment variable to see if the build is being run with Incredibuild.

Q: I understand that Incredibuild is using network protocols to move files around and execute programs. What precautions have you taken to make Incredibuild safe from security threats?

A: To start off, Incredibuild's license configuration lists the Agents that are "authorized" to participate in the system, protecting your environment from potential attempts to misuse the system from outside the authorized working group. A lot of attention has been put into making the network protocols as safe as possible from internal threats, as well. Finally, all file activity is done within a closed virtual environment, to make sure that your files are not harmed even if these measures fail to stop an attempt to misuse the system. In addition to these measures, Incredibuild also benefits from any security infrastructure (firewalls etc.) installed in your organization.

Q: I'm using precompiled headers in my project. Does Incredibuild support this? Is there anything I should be aware of regarding precompiled headers?

A: Yes, Incredibuild supports projects using Precompiled Headers and accelerates projects using PCHs. Specifically, "Automatic" PCHs have been known to slow down builds when used with Incredibuild, and our recommendation if you are using automatic PCHs is to either switch to using a standard header-based PCH or disable PCHs altogether.

Q: I'm using Visual Studio's browse information functionality. Will this still be available to me if I use Incredibuild?

A: Yes, Incredibuild supports the creation of browse information files.

Q: Some of my projects contain custom, pre-build, pre-link, and post-build steps. Does Incredibuild cope with that?

A: Yes. Custom build steps and build events are executed locally on the building machine (if that machine has more than one CPU, several steps can run in parallel on each CPU).

Q: My project uses COM objects, and requires DLLs and type libraries to compile some of my files. How does Incredibuild handle this?

A: All compilation is done from within a virtual mirror environment that acts as a copy of the building machine's environment. This means that regardless of what files and DLLs are on the remote machine, it produces a compilation output that is based on the DLLs and files found on the original machine.

Q: Some of my source files are located on network drives. How does this affect Incredibuild's behavior and performance?

A: Incredibuild can access files located on the network. In fact, it is actually more effective in this case. Because of its caching mechanism, Incredibuild gives even better results in comparison to VCs, when compiling projects that include files located on the network.

Q: How does Incredibuild determine which machines participate in a build?

A: The Incredibuild Coordinator is aware of each Agent's CPU strength, current CPU activity level, and other factors that can affect the Agent's effectiveness in compilation. When a build starts, the Coordinator assigns the most effective Agents currently available to that build. This initial assignment may change throughout the build as the Agent's availability changes. For example, if a user starts a CPU-intensive task on a machine participating in a remote build, that machine will most probably stop compiling immediately, and another machine will be assigned to that build in its place.

Q: What happens if several Agents start a build simultaneously?

A: In this case, the Incredibuild Coordinator attempts to assign Agents to the builds in a manner that gives each of the builds an equally high share of the available CPU in the system.

Q: What happens if the Coordinator becomes unavailable for some reason during a build?

A: Although the Coordinator manages the resources available for remote compilation, it is not a critical component for builds to succeed. If a build has started and the Coordinator component is for some reason unavailable, the build continues with its current Agent assignments until it is done building. Subsequent builds work in standalone mode until the Coordinator becomes available again. For the highest possible level of availability, you may install a "Backup Coordinator", which automatically takes control if the main Coordinator becomes unavailable.

Q: What happens if an Agent that is compiling for a remote machine suddenly becomes unavailable during a build?

A: If the Agent becomes unavailable or is simply too busy to be effective in the compilation, it simply stops working, and the file that it has been compiling is reassigned to another Agent. The build continues uninterrupted.

Q: I'm using a compiler/linker different from MSVC's for better code optimization. I still develop and build my project using Visual Studio. Will Incredibuild support the compiler I'm using?

A: Incredibuild currently supports Microsoft's cl.exe (all Visual Studio, eVC, Xbox, and Xbox 360 platforms) and Intel C++ Compiler. Additional compilers may be supported in the future. The Incredibuild for Make and Build Tools Package can be used with NVidia, CUDA compiler, vxworks, Xbox One, Nintendo, and play station tool chains.

Q: Does Incredibuild support multi-processor machines?

A: Yes. Incredibuild can exploit additional processors to improve compilation time.

Q: Does Incredibuild support Xbox projects?

A: Yes. Incredibuild fully supports distributed builds of Xbox projects in the MSVC .NET platform.

Q: Does Incredibuild support Xbox 360 and Xbox One projects?

A: Yes. Incredibuild fully supports distributed builds of Xbox 360 and Xbox One projects.

Q: Can I use Incredibuild on a standalone machine?

A: Yes; with multiple-CPU machines, you can use Incredibuild to exploit both the machines' processors and substantially improve compilation speed.

Q: Am I required to manually copy files between machines, register DLLs, or perform any preliminary action after installing Incredibuild in order for my project to compile?

A: No, Incredibuild handles all of the synchronization itself, and does it within a virtual environment. The computer's file system is left unchanged, no DLLs are installed, etc.

Q: How many Agents can there be in an Incredibuild environment?

A: One Incredibuild Coordinator can effectively serve 500+ Agents. In cases where more Agents are required, we recommend splitting the environment into workgroups, each with its own Coordinator.

Q: Is it OK to install an Agent in the same machine as the Coordinator?

A: It is perfectly OK, and even common practice. The Coordinator is a lightweight component that does not take a lot of resources. Try not installing both on a machine with particularly weak hardware, though.

Q: Can I build makefile-based projects with Incredibuild?

A: Using the Dev Tools Interfaces extension package introduced in Incredibuild 3.0, Incredibuild can distribute builds run by a variety of Make and build tools, such as those listed in Supported Make and Build Tools.User Manual: