In general, on Linux, the .so file is a dynamic library, and the .a or .la file is for static communication. Which one you need depends on your application and how you installed / built the library. For a tutorial on static and dynamic layout, see this site. Also, did you build fftw yourself from the source code, or did you use the package manager? This will help answer your question. Regarding the use of gcc, check out this man page , this may clear some things.
So yes, the short answer is to either stick with .a or specify when you create fftw that you want to use a shared library. ./configure --enable-shared
source
share