|
We do our best to provide answers to try and answer the most frequently asked questions in this section. If
you do not find an answer here, or find the information provided unsatisfying, please let us know by sending mail
to support@xoreax.com and we will try to respond as promptly as possible.
You may also visit our Knowledge Base page for
a variety of articles.
Index
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've disabled the IncrediBuild Agent on my machine, but my machine seems very unresponsive. When checking the running processes in the task manager, I see a cl.exe process, although I'm not running a build. What's the problem?
- 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'm getting the following warning:
"File includes the following header files that are also included by the precompiled header, and use the '#pragma once' directive.
This may cause interoperability problems when using IncrediBuild to build the precompiled-header and MSVC to build source files that use it, or vice versa.
Refer to the FAQ section in the documentation for more details and possible workarounds." 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."
What's wrong?
- 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?
Q&A
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, but keep in mind that distributing a number of Agents between more
than one Coordinator will mean 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, that 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 will give a detailed explanation as well as a price quote.
Q: Are site licenses available?
A: Yes, sire licenses are available for 200+ users. Contact our sales department for more details.
Q: How do I add more Agents to an existing license?
A: Send mail to our sales department 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: What are "Helper" Agents?
A: Helper Agents are less expensive clients that add processing power to the build environment, but are not capable
of initiating builds. Helper Agents can be installed on any PC or server in the organization. They can be configured either as a dedicated
build farm machine, or to only take advantage of idle processor time, so that the computer's responsiveness isn't affected. There is no need
to install additional software on machines running Helper Agents.
Q: Do I have to pay for the Coordinator application?
A: No. The Coordinator is provided free of charge, and pricing is only determined according to the number of Agents
in the license.
Q: I'm a licensed user using IncrediBuild with Visual Studio .NET. Can I use it with Visual Studio 2005 or do I need to upgrade?
A: Yes. Starting from IncrediBuild v2.50, licenses supporting Visual Studio .NET can be used with Visual 2005. Note that if
your maintenance service has expired and you are using an older version, you may have to renew your maintenance service in order to upgrade to
this version.
Q: After purchasing a license, can I move an Agent from one machine to another?
A: Yes, if your license's maintenance option is still in effect. This will involve a simple process in which the old Agent must first be "unsubscribed" and the new one
"subscribed". Both operations are performed centrally from the IncrediBuild Coordinator application.
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: Are multiple CPU/core machines supported and how is this addressed in the licensing model?
A: IncrediBuild can take advantage of machines with multiple CPUs/cores by allowing processors to build files in parallel. This
can introduce a substantial additional performance gain. When using IncrediBuild's 30-day evaluation version, you will be able to
use an unlimited number of additional CPUs/cores in builds. When licensing IncrediBuild, multi-CPU/core support is available for an additional cost. See the Pricing and Terms page for more details.
Q: Am I entitled to support and version upgrades after purchasing IncrediBuild?
A: Each initial IncrediBuild license purchase entitles you to 6 months of free version upgrades and support. This period can be
extended for an annual fee. See the Pricing and Terms page for more details.
Q: How is the product delivered and what are the delivery terms?
A: A product license file will be delivered by email within 1 business day of receiving the order. No physical shipment is made.
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 for free. If you wish to transfer some of the Agents used in one location to
another location, contact us at sales@xoreax.com
and we'll provide you with details.
Q: I have a sales-related question that I haven't found an answer to. How do I contact you?
A: Write to us at sales@xoreax.com. We'll do our best to provide a speedy response.
Technical Information
Q: What do I have to do in order to install IncrediBuild for evaluation in a networked environment?
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.
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 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).
Q: Am I required to make changes in my C++ project for IncrediBuild to work?
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.
Q: How will 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 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.
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 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 will IncrediBuild distribute when building Visual Studio projects?
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 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 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).
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, MSVC 2005/.NET .VCPROJ & .SLN files, Intel C/C++ Optimizing Compiler .icproj files, and embedded VC 4.0 .vcw/.vcp files.
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'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.
Q: What are the software/hardware prerequisites for installing IncrediBuild?
A: IncrediBuild runs on Windows NT, 2000, XP, 2003 and Vista versions, on any TCP/IP based network. Microsoft Visual C++ 6.0 .NET or 2005 (all versions except the Express Edition are 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.
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 will be 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 will be
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's 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 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.
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 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.
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. Will 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 DLL's 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 will produce a compilation output that's based on the DLLs and files found on the original machine.
Q: Some of my source files are located on network drives. How will 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 will give even better results compared to VC's when compiling projects that include files located on the network.
Q: How does IncrediBuild determine which machines will 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 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.
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 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.
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 will simply stop working, and the file that it has been compiling will be reassigned to another Agent. The build will continue 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 Corporation's optimizing C/C++ Compiler. Additional compilers may be supported in the future. The XGE Interfaces extension package can be used with a variety of build tools and scripts to run compilers that are not currently supported.
Q: What programming languages does IncrediBuild support?
A: IncrediBuild's Visual Studio integration supports C and C++ projects stored in Microsoft Visual C++ format.
Q: Does IncrediBuild support multi-processor machines?
A: Yes. IncrediBuild can exploit additional processors to improve compilation time. This feature is available at an additional cost.
Q: Does IncrediBuild support Microsoft Visual C++ .NET?
A: Yes. IncrediBuild fully supports MSVC .NET 2002 and 2003 (all project types).
Q: Does IncrediBuild support Microsoft Visual C++ 2005?
A: IncrediBuild fully supports Visual Studio 2005.
Q: Does IncrediBuild support Microsoft Visual C++ 2008?
A: IncrediBuild fully supports Visual Studio 2008.
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 projects?
A: Yes. IncrediBuild fully supports distributed builds of Xbox 360 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 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.
Q: How many Agents can there be in an IncrediBuild environment?
A: One IncrediBuild Coordinator will effectively serve up to 400 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 C# or VB projects with IncrediBuild?
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.
Q: Can I build makefile-based projects with IncrediBuild?
A: Using the XGE Interfaces extension package introduced in IncrediBuild 3.0, IncrediBuild can distribute builds run by a variety of make and build tools.
Troubleshooting
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 the 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'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.
Q: How can a user disable an Agent temporarily to make sure IncrediBuild will not use the machine's CPU?
A: By right-clicking on the IncrediBuild tray-icon and choosing "Disable Agent". This can also be done remotely from the Coordinator application.
Q: 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?
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.
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: It looks like some debug information is missing. Can this be related to IncrediBuild (MSVC 6.0-specific)?
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.
Q: When building projects, only my machine's Agent participates in the build!
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 extension package 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 extension package 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.
Q: I can't see the IncrediBuild tray-icon display. How do I restore it?
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.
Q: I've disabled the IncrediBuild Agent on my machine, but my machine seems very unresponsive. When checking the running processes in the task manager, I see a cl.exe process, although I'm not running a build. What's the problem?
A: On some versions of Windows NT, the operating system reports the screen-saver as running even when it's not. Since IncrediBuild operates as a high-priority process when the screen-saver is active, this may noticeably reduce your computer's responsiveness. To avoid this situation, open the IncrediBuild Agent Settings dialog. You should immediately receive a message stating that the screen-saver is falsely reported as active, and the option that automatically enables the Agent when the screen-saver starts will be disabled.
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 checked.
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 may 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 a 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 answer in 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' output doesn't mix up. 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:
1. Set the configuration's project settings to generate browse information (this is done by checking the browse info checkboxes on both the C/C++ page and the Browse info page in MSVC's project settings dialog).
2. 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).
3. Rebuild the project.
If you do not wish to use browse information:
1. Set the configuration's project settings NOT to generate browse information.
2. 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).
3. 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 on 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.dat
perfd009.dat
If not, run the Windows setup installation to restore these system files.
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:
1. Ping the problem Agent from the building machine, using its IP address.
2. Ping the problem Agent from the building machine, using its network name.
3. Ping the building machine from the problem Agent, using its IP address.
Q: I'm getting the following warning:
"File includes the following header files that are also included by the precompiled header, and use the '#pragma once' directive.
This may cause interoperability problems when using IncrediBuild to build the precompiled-header and MSVC to build source files that use it, or vice versa.
Refer to the FAQ section in the documentation for more details and possible workarounds." What's wrong?
A: When a source file includes one or more header files that are also included by the precompiled header and use the '#pragma once' directive, these header files may be #included more than once despite the #pragma once directive. This will happen only in .NET builds, in one of the following 2 scenarios:
1. When the PCH was compiled using IncrediBuild and the source files compiled without IncrediBuild.
2. When the PCH was compiled without IncrediBuild and the source files compiled using IncrediBuild.
There are 2 possible workarounds for this issue:
1. Remove the explicit #include directive for these header files from cpp files that use the PCH (the file will be included through the PCH).
2. Replace the #pragma once directive in the header file with the following preprocessor code:
#ifndef __HEADER_NAME__
#define __HEADER_NAME__
<header file contents>
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 application.
2. Locate your Agent in the Agent list.
3. If the 'Status' column says 'Unsubscribed', right-click the Agent and select 'Subscribe'. If the 'Subscribe' option is grayed out, your license has reached its limit of subscribed Agents and you must first unsubscribe an Agent.
4. If the 'Packages' column specifies 'Build 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 application.
2. Locate your Agent in the Agent list.
3. Right-click the Agent and select 'Allocate Package->Multiple CPU(s)/Core(s)'. If this option is grayed out, your license has already allocated all of available 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 will have 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 use of precompiled headers altogether.
Q: Why does the Coordinator show an Agent as 90%-100% CPU available while it's actually isn't?
A: If the screen saver is running, IB assumes the machine is available even if the screensaver takes up CPU. If the Agent on
that machine is then used for compilation, the compiler will run as a high-priority process so it will get more CPU than the screen saver.
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 - to prevent situations in which a build is slowed down due to a slow remote Agent,
IncrediBuild will sometimes double 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.
|