Setting Up Your Project

Before using quickfix, you must make sure that your project has build settings that are compatible. Being a portable piece of code, some tradeoffs needed to be made concerning the areas of portability, maintainability, performance, testability, and features.

QuickFIX makes use of many advanced features of C++ that help and hinder some of these areas. We believe that for QuickFIX to be the best product it could be, the use of templates, exceptions, and the STL were important in most elegantly expressing the logic and data of a FIX engine. Therefore it is necessary that your compiler support these features. Most modern compilers will have no problem however there are some caveats which will be listed in the following sections.

Windows (C++)

The following settings concerning quickfix can all be found under the project | properties dialog box in Microsoft Visual Studio. All pages in this dialog box are organized by tabs and catagories. When refering to a setting, the format tab | catagory | setting will be used.

Windows (.NET)

This couldn't be simpler.

Linux/Solaris

Linux/Solaris have several caveats. Using GCC you have to keep a couple things in mind. Support for C++ is adequate but not great. The unix world is still primarily driven by C and therefore the tools are more readily available and optimized for C. Although everything builds and works correctly under Linux and Solaris, there are a few things to keep in mind.

There are a lot of choices for how to build under a unix environment. We use GNU autotools, however a lot of people don't. Instead of going over setting up an autotools project (a complex topic that I could not do justice here), I will simply cover what parameters need to be passed into your compiler and linker.

The actual placement of the quickfix library and header files should have been done for you when you ran make install after building quickfix.

Java

The QuickFIX/J jar file has been provided for your convenience. It is recommended you download the full QuickFIX/J projects from www.quickfixj.org.