# FAQ

Building

- Why does my IDE mysteriously dissapear when I browse QuickFIX in MSDEV?
- When building QuickFIX with gcc, the compiler complains it cannot find <sstream>
- After running make on *nix, I get an error that says libtool: ltconfig version `' does not match ltmain.sh version `1.3.5'
- During compilation, the compiler has errors in MessageValidator.cpp pertaining to the xml code.
- Can I build quickfix on *nix with a compiler other than gcc?
- The ./configure script fails or make fails.

Running

- When trying to connect to a FIX engine running on another machine, QuickFIX immediately drops the connection when it receives a logon.
- QuickFIX seems very unstable on a multiprocessor machine.
- When running my application under *nix, it crashes with a segmentation fault.
- When running my application under Linux, it crashes with a SIG_ABRT.
- My QuickFIX application crashed immediately on startup when using a DataDictionary.
- QuickFIX is dropping messages with repeating groups when not using a DataDictionary.
- Why does getGroup throw an exception. I know the group is there!
- How can I append fields to the Logon message

## Building

Why does my IDE mysteriously dissapear when I browse QuickFIX in MSDEV?
Microsoft Visual Studio 6's Statement completion options do not play very well with C++ templates. You can resolve this issues simply by turning this feature off. Do this by going to the Tools->Options menu. Under the Editor tab, uncheck all the Statement completion options.
When building QuickFIX with gcc, the compiler complains it cannot find <sstream>
Some earlier versions of gcc were not supplied with the sstream include file. You can get it here
After running make on *nix, I get an error that says libtool: ltconfig version `' does not match ltmain.sh version `1.3.5'
Run the ./bootstrap script, then run ./configure and make again.
During compilation, the compiler has errors in MessageValidator.cpp pertaining to the xml code.
Older versions of QuickFIX did not search for libxml in the configure script. Check to make sure that libxml is installed and that the correct include and library directories are being passed into the compiler. You may have to modify the configure.in file to do this.
Can I build quickfix on *nix with a compiler other than gcc?
Probably. We have been able to compile it with icc as well. You can always verify your compilation by running the suite of unit and acceptance tests against your build.
The ./configure script fails or make fails.
Run the ./bootstrap script, then run ./configure and make again.

## Running

When trying to connect to a FIX engine running on another machine, QuickFIX immediately drops the connection when it receives a logon.
Chances are the clocks on the machines are not synchronized. Either synchronize the clocks or use the CheckLatency and MaxLatency settings to allow the processing of older messages.
QuickFIX seems very unstable on a multiprocessor machine.
If you are using gcc 2.95.x, you need to use another STL library like STLport
When running my application under *nix, it crashes with a segmentation fault.
Make sure you have exceptions enabled with the -fexceptions flag. Also make sure you are catching any exceptions which need to be handled. QuickFIX does make use of the throw specifier in all function definitions which throw exceptions. If you are still having problems, verify that you are using the latest stable release of gcc. Some earlier versions have severe bugs with exception handling.
My QuickFIX application crashed immediately on startup when using a DataDictionary.
Older versions of QuickFIX crash if the DataDictionary is poorly formed XML. Check for errors in your data dictionary. This was fixed in 1.6.
QuickFIX is dropping messages with repeating groups when not using a DataDictionary.
Older versions of QuickFIX could not tell the difference between garbled messages and these messages. Make sure you are using a DataDictionary if you intend on receiving repeating groups. Newer versions will accept these messages and send proper rejects.
Why does getGroup throw an exception? I know the group is there!
Repeating groups are not 0 based, they are 1 based. Make sure you start with 1 when pulling groups out of a message.
How can I append fields to the Logon message?
Before an administrative message is sent, it makes it's way through the toAdmin callback. This gives you the opportunity to modify the message in any way you like. Here you can add things like passwords or other fields a counterparty may require. This can be done for any message, including application messages via the toApp callback.