I've been trying to get a Viterbi C/C++ decoder working for the last few weeks. For some reason I can't get it working. I initially started with Phil Karn's FEC library: http://www.ka9q.net/code/fec/
But this code doesn't want to compile for 64-bit Linux. I then found http://www.spiral.net/software/viterbi.html which will generate special Viterbi decoders that are optimized for X86 architectures. I can get this working and compiled it decodes data, but it doesn't decode the data correctly. Finally I found another library based on a stripped down version of Phil Karn's library called viterbi-3.0.1.tar (I don't recall the link).
In Matlab I've generated three test data sets, all zeros, all ones, and random data of length 2048 bits. The Spiral decoder correctly decodes the zero and ones data sets, but not the random data.
I've placed the code here with the test data tests. http://dl.dropbox.com/u/65739307/viterbicpp.tar.bz2