Frequently Asked Questions - Technical
You may also visit our Knowledge Base page for a variety of articles.
With questions related to Pricing & Licensing , please refer to our Sales FAQ page
- What do I have to do in order to install IncrediBuild for evaluation in a networked environment?
- 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?
- Am I required to make changes in my C++ project for IncrediBuild to work?
- How will the Microsoft Visual Studio environment change after installing IncrediBuild?
- Can IncrediBuild be used from the command-line or from build scripts?
- Which portions of my build will IncrediBuild distribute when building Visual Studio projects?
- How can I know how effective IncrediBuild will be when used to compile my C++ project?
- What types of file formats can IncrediBuild accept as input?
- Can IncrediBuild alter the compilation or link process, potentially creating problems in the build output?
- Can IncrediBuild slow down other user's machines in my organization as a result of the distributed compilation process?
- What are the software/hardware prerequisites for installing IncrediBuild?
- Won't IncrediBuild use up all of my LAN bandwidth?
- 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?
- I noticed a folder named "File Cache" under my IncrediBuild installation folder that's taking up a lot of disk space. What does it do?
- How can I adjust my scripts to identify if a build was run with IncrediBuild?
- 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?
- I'm using precompiled headers in my project. Does IncrediBuild support this? Is there anything I should be aware of regarding precompiled headers?
- I'm using Visual Studio's browse information functionality. Will this still be available to me if I use IncrediBuild?
- Some of my projects contain custom, pre-build, pre-link and post-build steps. Will IncrediBuild cope with that?
- My project uses COM objects, and requires DLL's and type libraries to compile some of my files. How does IncrediBuild handle this?
- Some of my source files are located on network drives. How will this affect IncrediBuild's behavior and performance?
- How does IncrediBuild determine which machines will participate in a build?
- What happens if several Agents start a build simultaneously?
- What happens if the Coordinator becomes unavailable for some reason during a build?
- What happens if an Agent that is compiling for a remote machine suddenly becomes unavailable during a build?
- 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?
- What programming languages does IncrediBuild support?
- Does IncrediBuild support multi-processor machines?
- Does IncrediBuild support Microsoft Visual C++ .NET?
- Does IncrediBuild support Microsoft Visual C++ 2005?
- Does IncrediBuild support Microsoft Visual C++ 2008?
- Does IncrediBuild support Microsoft Visual C++ 2010?
- Does IncrediBuild support Xbox projects?
- Does IncrediBuild support Xbox 360 projects?
- Can I use IncrediBuild on a standalone machine?
- 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?
- How many Agents can there be in an IncrediBuild environment?
- Is it OK to install an Agent in the same machine as the Coordinator?
- Can I build C# or VB projects with IncrediBuild?
- Can I build makefile-based projects with IncrediBuild?
Important Note: If you don't find an answer to your question in this section, search the IncrediBuild Knowledgebase for a possible answer.
- 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 the IncrediBuild operation. Why does this occur?
- I'm comparing OBJ/EXE files that MSVC created to those of IncrediBuild - and they're not the same. Why?
- How can a user disable an Agent temporarily to make sure IncrediBuild will not use the machine's CPU?
- I've changed some of the directories in the "Directories" tab under the tools->Options menu in MSVC 6.0, and my change doesn't seem to have effect on IncrediBuild. Is this OK?
- 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?
- It looks like some debug information is missing. Can this be related to IncrediBuild (MSVC 6.0-specific)?
- When building projects, only my machine's Agent participates in the build!
- I can't see the IncrediBuild tray-icon display. How do I restore it?
- I can't see the IncrediBuild menu/toolbar in Microsoft Studio! Where's it gone?
- Browse information is not generated when building a project with IncrediBuild, although it is generated when building with MSVC. Why?
- 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?
- When compiling, I get a "No such file or directory" error on a header file/type library file.
- When compiling, it seems that the compiler is using a different/out-of-date version of a header file/type library file.
- 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?
- 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?
- The IncrediBuild Agent fails to start on my machine. What's wrong?
- 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?
- 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?
- I've installed a permanent/temporary IncrediBuild license supporting multiple CPUs/cores, but only one processor is used in builds. What should I do?
- 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."
- Why does the Coordinator show an Agent as 90%-100% CPU available while it's actually isn't?
- I can't get Edit & Continue to work. What's wrong?
- When building, I see two compilation bars showing the same file being compiled on two different machines. Is this normal?
A: Installing an IncrediBuild environment will typically take less than 15 minutes of your time. After downloading and running the Setup program, you will be required to install the Coordinator component on one computer (a desktop PC will do). After this simple wizard-based process, use the setup program to install the Agent component on some PCs connected to the local network (an Agent machine's setup typically lasts less than a minute, and doesn't even require a reboot). That's it! IncrediBuild is ready to build.
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 will always have the option to go back to building as usual. If build scripts are used, they will have to undergo a minor change (replacing VC's command-line build tool with IncrediBuild's).
A: No. IncrediBuild will build any C/C++ project that can be built using Visual Studio. In some cases it will be necessary to add project dependency information to allow multiple projects to be built in the correct order.
A: An IncrediBuild menu and toolbar containing Build, Rebuild, Clean, Batch Build and Stop Current Build commands will become available. Simply use these commands instead of VC's. When building, the output will be displayed in a special "Build Monitor" display (also integrated with the environment), that will contain 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.
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 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!
A: IncrediBuild will distribute 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 XGE Interfaces solution.
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 will reduce 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).
A: IncrediBuild is compatible with Microsoft Visual C++ 6.0 project DSP/DSW files, Microsoft Visual C++ 2010 .VCPROJX & .SLN Files, MSVC 2008/2005/.NET .VCPROJ & .SLN files, Intel C++ Compiler .icproj files, and embedded VC 4.0 .vcw/.vcp files.
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.
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's 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 will be running IncrediBuild at full pace, while on a more active computer the Agent will maintain its activity at a lower level. Normally, users do not even feel the presence of an IncrediBuild Agent on their machine.
A: IncrediBuild runs on Windows XP, 2003, Vista and Windows 7 versions, on any TCP/IP based network. Microsoft Visual C++ 2010, 2008, 2005, .NET & 6.0 (Visual Studio Express Edition is not supported) are required for Agents that run Visual Studio builds. Helper Agents (Agents that are used only as a "passive" resource and do not initiate builds) do not require any special software.
The minimal hardware configuration is a Pentium machine with a 450Mhz CPU, 128MB RAM and 10/100 Mbps network connection.
A: No. A lot of effort has been put into network optimization tactics such as caching and compression to make sure network traffic will be kept at a minimum. In standard networks IncrediBuild's presence is hardly felt at all, even when several compilations are taking place.
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 will be identical to those found in the building machine. In fact, they don't even have to exist on the remote Agent!
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.
A: IncrediBuild automatically defines an environment variable called "XoreaxBuildContext", 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.
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 will not be harmed even in the case of these measures failing to stop an attempt to misuse the system. In addition to these measures IncrediBuild will also benefit from any security infrastructure (firewalls etc.) installed in your organization.
A: Yes, IncrediBuild supports projects using Precompiled Headers and will accelerate 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.
A: Yes, IncrediBuild supports the creation of browse information files.
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).
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 will produce a compilation output that's based on the DLLs and files found on the original machine.
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 will give even better results compared to VC's when compiling projects that include files located on the network.
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.
A: In this case, the IncrediBuild Coordinator will attempt to assign Agents to the builds in a manner that will give each of the builds an equally high share of the available CPU in the system.
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 will continue with its current Agent assignments until it is done building. Subsequent builds will work in standalone mode until the Coordinator becomes available again. For the highest possible level of availability, you may install a "Backup Coordinator", which will automatically take control if the main Coordinator becomes unavailable.
A: If the Agent becomes unavailable or is simply too busy to be effective in the compilation, it will simply stop working, and the file that it has been compiling will be reassigned to another Agent. The build will continue uninterrupted.
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 XGE Interfaces solution can be used with a variety of build tools and scripts to run compilers that are not currently supported.
A: IncrediBuild's Visual Studio integration supports C and C++ projects stored in Microsoft Visual C++ format.
A: Yes. IncrediBuild can exploit additional processors to improve compilation time. This feature is available at an additional cost.
A: Yes. IncrediBuild fully supports MSVC .NET 2002 and 2003 (all project types).
A: IncrediBuild fully supports Visual Studio 2005.
A: IncrediBuild fully supports Visual Studio 2008.
A: IncrediBuild fully supports Visual Studio 2010.
A: Yes. IncrediBuild fully supports distributed builds of Xbox projects in the MSVC .NET platform.
A: Yes. IncrediBuild fully supports distributed builds of Xbox 360 projects.
A: Yes - with multiple-CPU machines, you can use IncrediBuild to exploit both the machines' processors and substantially improve compilation speed.
A: No, IncrediBuild will handle all of the synchronization itself, and will do it within a virtual environment - the computer's file system will be left unchanged, no DLLs will be installed etc.
A: One IncrediBuild Coordinator will effectively serve 500+ Agents. In cases where more Agents are required, we recommend splitting the environment into workgroups, each with its own 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.
A: Yes. IncrediBuild builds non-C/C++ projects in a separate shell running "devenv.exe /make". While this will provide support for your solution, the only performance gain will be in the C/C++ project sections.
A: Using the XGE Interfaces solution introduced in IncrediBuild 3.0, IncrediBuild can distribute builds run by a variety of make and build tools.
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.
A: There are some differences between IncrediBuild's output and MSVC's, caused by debug information placement, timestamps in the binary files, OBJ file order in the linking phase and so on. This is normal and will not affect the application's behavior.
A: By right-clicking on the IncrediBuild tray-icon and choosing "Disable Agent". This can also be done remotely from the Coordinator application.
A: The directories in these settings should only be used for system-wide settings, as they will affect all projects compiled on that machine. Project-level settings should always be done via the "Project Settings" dialog. MSVC 6.0 stores any new or modified directory information when it is closed, so in order for IncrediBuild to be aware of the new system directories MSVC must be closed once after modifying the information.
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.
A: This may be related to use of the "Separate Types" linker option. The "Separate Types" option (located in the "Linker" page, under MSVC's Settings dialog) instructs the linker to leave debug information stored in the compiler generated PDB files, instead of generating a single PDB file for the entire project. When this option is used with IncrediBuild, separate PDB files are created for each Agent participating in the build. In this scenario, if you're using debug information files that have been copied using scripts, some PDB files may not have been copied, resulting in loss of debug information. The recommended resolution is to turn off the "Separate types" linker option in the project (you can also use the built-in override option in the Agent Settings dialog). This will always guarantee a single PDB file for the project. Another alternative is to fix the relevant scripts.
A: This can be caused by a number of reasons:
1. 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.
2. The solution required for building the project is not allocated to your Agent. Allocating build system packages is done from the Coordinator application. Check with your system administrator to see if your license allows allocation of the required solution to your machine.
3. The project contains a very small amount of files and therefore they do not get distributed between the Agents.
4. The Coordinator name or port set in the Agent Settings dialog in your machine is incorrect.
5. 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.
6. Your machine is disconnected from the network. Check network cable and settings.
7. Network security restrictions are blocking TCP/IP access from your machine to either the Coordinator machine or the Agent machines in the network.
8. Your trial period of IncrediBuild has expired.
A: Select "Programs files->Xoreax IncrediBuild->IncrediBuild Agent Tray-Icon" from the Start menu 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.
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 checked.
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 may also override this setting for a particular project when building a project from the batch build dialog.
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: