C++ FFTW3 linking error

VishalYadav picture VishalYadav · Feb 26, 2013 · Viewed 7.6k times · Source

I am getting very strange error whenever I am trying to compile a C++ program with FFTW3 implementation.

I am compiling as follows

g++ -O3 -lm -lfftw3 myFile.cpp -o myFileFFTW

I also included my headers file as follows

#include <math.h> #include "fftw3.h"

The error is as follows

(.text+0x63): undefined reference to `fftw_malloc'

Any suggestions?

Edit:

the suggestion by hmjd worked for me. Linker errors when compiling against glib...?

I guess one should not work for straight 3 days otherwise mind does not work!! Special thanks hmjd!! you saved my day and I could finish my project on time !!

Answer

Saqlain picture Saqlain · Feb 26, 2013

I guess problem is -lfftw3 not present on your system and you are also not specifying libs correctly.

Libraries at the end of the compiler command:

gcc -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include re.c -o re -lglib-2.0

From GCC Link Options:

-llibrary -l library Search the library named library when linking. (The second alternative with the library as a separate argument is only for POSIX compliance and is not recommended.)

It makes a difference where in the command you write this option;
the linker searches and processes libraries and object files in the
order they are specified.
Thus, `foo.o -lz bar.o' searches library `z' after file foo.o but
before bar.o. If bar.o refers to functions in `z', those functions
may not be loaded.

snnippet from Linker errors when compiling against glib...?