Here is an open source fixed-point library on GitHub:
https://github.com/mbedded-ninja/MFixedPoint
It supports 32-bit and 64-bit fixed-point numbers (with a arbitrary quotient) and both fast (everything is templated, but a little more manual) and slow fixed-point numbers (more automatic, but slower).
It is geared towards embedded platforms, however I have used it on both microcontrollers and Linux without any issues.