我有一个.cpp项目的Makefile用于使用GLUT进行一些可视化。我想改变它以使用Qt代替可视化。下面是(工作)项目的Makefile
OBJECTS = fluids.o
CFILES = $(OBJECTS:.o=.cpp)
EXECFILE = smoke
FFTW = fftw-2.1.5
INCLUDEDIRS = -I ${FFTW}/include/
LIBDIRS = $(FFTW)/lib
LIBS = -framework GLUT -framework OpenGL -lrfftw -lfftw
CFLAGS = -O2 -Wall -pipe -Wno-deprecated-declarations
LINKFLAGS =
.SILENT:
all: $(EXECFILE)
$(EXECFILE): $(OBJECTS)
g++ $(LINKFLAGS) $(OBJECTS) -o $(EXECFILE) -L$(LIBDIRS) $(LIBS)
.cpp.o: $$@.cpp $$@.h
g++ $(CFLAGS) $(INCLUDEDIRS) -c $<
clean:
-rm -rf $(OBJECTS) $(EXECFILE)
depend:
g++ -MM $(CFILES) > make.dep
-include make.dep
这是我在Qt中创建的.pro文件
TEMPLATE = app
TARGET = name_of_the_app
QT = core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
SOURCES += \
main.cpp \
window.cpp \
fluids.cpp \
simulation.cpp \
visualization.cpp
HEADERS += window.h
INCLUDEPATH += fftw-2.1.5/include
LIBS += -L"$$_PRO_FILE_PWD_/fftw-2.1.5/lib/" -lrfftw -lfftw
现在,当我构建它时,我得到了
/simulation.cpp:97: error: use of undeclared identifier 'exp'
f = (fftw_real)exp(-r*dt*visc);
^
我假设exp()函数在rfftw.a或fftw.a中声明,并且这些函数没有正确添加。 LIBS += ...
行是否正确,如果不正确,我应该如何更改?