如何将普通的Makefile转换为Qt .pro

时间:2016-02-04 14:56:41

标签: c++ qt makefile

我有一个.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 += ...行是否正确,如果不正确,我应该如何更改?

0 个答案:

没有答案