24小时热门版块排行榜    

查看: 2511  |  回复: 13

mymarik

铁杆木虫 (小有名气)

[求助] 安装lammps的时候 出现fftw3d相关的一些提示  能帮我看看是什么问题吗 已有2人参与

我在想是不是 要去除某个 package


fft3d.o:在函数‘fft_3d’中:
/home/tree/Software/lammps/src/Obj_mpi/../fft3d.cpp:151:对‘fftwf_execute_dft’未定义的引用
/home/tree/Software/lammps/src/Obj_mpi/../fft3d.cpp:214:对‘fftwf_execute_dft’未定义的引用
/home/tree/Software/lammps/src/Obj_mpi/../fft3d.cpp:277:对‘fftwf_execute_dft’未定义的引用
/home/tree/Software/lammps/src/Obj_mpi/../fft3d.cpp:151:对‘fftwf_execute_dft’未定义的引用
/home/tree/Software/lammps/src/Obj_mpi/../fft3d.cpp:214:对‘fftwf_execute_dft’未定义的引用
fft3d.o:/home/tree/Software/lammps/src/Obj_mpi/../fft3d.cpp:277: 跟着更多未定义的参考到 fftwf_execute_dft
fft3d.o:在函数‘fft_3d_create_plan’中:
/home/tree/Software/lammps/src/Obj_mpi/../fft3d.cpp:852:对‘fftwf_plan_many_dft’未定义的引用
/home/tree/Software/lammps/src/Obj_mpi/../fft3d.cpp:857:对‘fftwf_plan_many_dft’未定义的引用
/home/tree/Software/lammps/src/Obj_mpi/../fft3d.cpp:862:对‘fftwf_plan_many_dft’未定义的引用
/home/tree/Software/lammps/src/Obj_mpi/../fft3d.cpp:867:对‘fftwf_plan_many_dft’未定义的引用
/home/tree/Software/lammps/src/Obj_mpi/../fft3d.cpp:872:对‘fftwf_plan_many_dft’未定义的引用
fft3d.o:/home/tree/Software/lammps/src/Obj_mpi/../fft3d.cpp:877: 跟着更多未定义的参考到 fftwf_plan_many_dft
fft3d.o:在函数‘fft_3d_destroy_plan’中:
/home/tree/Software/lammps/src/Obj_mpi/../fft3d.cpp:987:对‘fftwf_destroy_plan’未定义的引用
/home/tree/Software/lammps/src/Obj_mpi/../fft3d.cpp:988:对‘fftwf_destroy_plan’未定义的引用
/home/tree/Software/lammps/src/Obj_mpi/../fft3d.cpp:989:对‘fftwf_destroy_plan’未定义的引用
/home/tree/Software/lammps/src/Obj_mpi/../fft3d.cpp:990:对‘fftwf_destroy_plan’未定义的引用
/home/tree/Software/lammps/src/Obj_mpi/../fft3d.cpp:991:对‘fftwf_destroy_plan’未定义的引用
fft3d.o:/home/tree/Software/lammps/src/Obj_mpi/../fft3d.cpp:992: 跟着更多未定义的参考到 fftwf_destroy_plan
fft3d.o:在函数‘fft_1d_only’中:
/home/tree/Software/lammps/src/Obj_mpi/../fft3d.cpp:1218:对‘fftwf_execute_dft’未定义的引用
/home/tree/Software/lammps/src/Obj_mpi/../fft3d.cpp:1223:对‘fftwf_execute_dft’未定义的引用
/home/tree/Software/lammps/src/Obj_mpi/../fft3d.cpp:1228:对‘fftwf_execute_dft’未定义的引用
/home/tree/Software/lammps/src/Obj_mpi/../fft3d.cpp:1218:对‘fftwf_execute_dft’未定义的引用
/home/tree/Software/lammps/src/Obj_mpi/../fft3d.cpp:1223:对‘fftwf_execute_dft’未定义的引用
fft3d.o:/home/tree/Software/lammps/src/Obj_mpi/../fft3d.cpp:1228: 跟着更多未定义的参考到 fftwf_execute_dft
collect2: error: ld returned 1 exit status
Makefile:91: recipe for target '../lmp_mpi' failed
make[1]: *** [../lmp_mpi] Error 1
make[1]: Leaving directory '/home/tree/Software/lammps/src/Obj_mpi'
Makefile:129: recipe for target 'mpi' failed
make: *** [mpi] Error 2
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

alundilong

木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
mymarik: 金币+20, 有帮助, 谢谢你的耐心回复  很感谢 2016-04-01 21:04:36
应该是f f t w3的库文件路径不对吧?
贴出Makefile看看吧。
2楼2016-03-31 21:31:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mymarik

铁杆木虫 (小有名气)

引用回帖:
2楼: Originally posted by alundilong at 2016-03-31 21:31:18
应该是f f t w3的库文件路径不对吧?
贴出Makefile看看吧。

如果不安装多余的package(即用系统默认的package) 可以成功编译  而且能跑一部分例子

# mpi = default MPI compiler, default MPI

SHELL = /bin/sh

# ---------------------------------------------------------------------
# compiler/linker settings
# specify flags and libraries needed for your compiler

CC =                g++ #mpicxx
CCFLAGS =        -g -O3  -DLAMMPS_MEMALIGN=64
SHFLAGS =        -fPIC
DEPFLAGS =        -M

LINK =                g++ #mpicxx
LINKFLAGS =        -g -O
LIB =
SIZE =                size

ARCHIVE =        ar
ARFLAGS =        -rc
SHLIBFLAGS =        -shared

# ---------------------------------------------------------------------
# LAMMPS-specific settings, all OPTIONAL
# specify settings for LAMMPS features you will use
# if you change any -D setting, do full re-compile after "make clean"

# LAMMPS ifdef settings
# see possible settings in Section 2.2 (step 4) of manual

LMP_INC =        -DLAMMPS_GZIP

# MPI library
# see discussion in Section 2.2 (step 5) of manual
# MPI wrapper compiler/linker can provide this info
# can point to dummy MPI library in src/STUBS as in Makefile.serial
# use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts
# INC = path for mpi.h, MPI compiler settings
# PATH = path for MPI library
# LIB = name of MPI library

MPI_INC =       -DMPICH_SKIP_MPICXX -I/home/tree/Software/mpich/src/include
MPI_PATH =      -L/usr/local/lib
MPI_LIB =        -lmpich -lmpl -lpthread

# FFT library
# see discussion in Section 2.2 (step 6) of manual
# can be left blank to use provided KISS FFT library
# INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings
# PATH = path for FFT library
# LIB = name of FFT library

FFT_INC =            -DFFT_FFTW3 -DFFT_SINGLE -I/home/tree/Software/fftw/kernel
FFT_PATH =      -L/usr/local/lib
FFT_LIB =        -lfftw3

# JPEG and/or PNG library
# see discussion in Section 2.2 (step 7) of manual
# only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC
# INC = path(s) for jpeglib.h and/or png.h
# PATH = path(s) for JPEG library and/or PNG library
# LIB = name(s) of JPEG library and/or PNG library

JPG_INC =      -I/home/tree/Software/jpeg
JPG_PATH =         -L/usr/local/lib
JPG_LIB =        /usr/local/lib/libjpeg.a



# ---------------------------------------------------------------------
# build rules and dependencies
# do not edit this section

include        Makefile.package.settings
include        Makefile.package

EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC)
EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH)
EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB)
EXTRA_CPP_DEPENDS = $(PKG_CPP_DEPENDS)
EXTRA_LINK_DEPENDS = $(PKG_LINK_DEPENDS)

# Path to src files

vpath %.cpp ..
vpath %.h ..

# Link target

$(EXE):        $(OBJ) $(EXTRA_LINK_DEPENDS)
        $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE)
        $(SIZE) $(EXE)

# Library targets

lib:        $(OBJ) $(EXTRA_LINK_DEPENDS)
        $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ)

shlib:        $(OBJ) $(EXTRA_LINK_DEPENDS)
        $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \
        $(OBJ) $(EXTRA_LIB) $(LIB)

# Compilation rules

%.o:%.cpp $(EXTRA_CPP_DEPENDS)
        $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $<

%.d:%.cpp $(EXTRA_CPP_DEPENDS)
        $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@

%.o:%.cu $(EXTRA_CPP_DEPENDS)
        $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $<

# Individual dependencies

DEPENDS = $(OBJ:.o=.d)
sinclude $(DEPENDS)
3楼2016-03-31 21:41:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

alundilong

木虫 (正式写手)

【答案】应助回帖

FFT_INC =            -DFFT_FFTW3 -DFFT_SINGLE -I/home/tree/Software/fftw/kernel
FFT_PATH =      -L/usr/local/lib
FFT_LIB =        -lfftw3
看到这里,我有如下推测,不知准不准确:楼主的fftw是自己进行编译,并且设置configure的时候 使用了./configure --prefix=/home/tree/Software/fftw。如果我的想法是成立的话,我建议楼主将FFT_PATH改成FFT_PATH=-L/home/tree/Software/fftw/lib, 将FFT_INC改成 FFT_INC =            -DFFT_FFTW3 -DFFT_SINGLE -I/home/tree/Software/fftw/include
其他不变。

如果以上推测成立,即楼主自行编译安装了mpich,并且使用了--prefix=/home/tree/Software/mpich/
建议楼主做相应修改,即MPI_INC = -DMPICH_SKIP_MPICXX -I/home/tree/Software/mpich/include
和MPI_PATH =      -L/home/tree/Software/mpich/lib

MPI_INC =       -DMPICH_SKIP_MPICXX -I/home/tree/Software/mpich/src/include
MPI_PATH =      -L/usr/local/lib
MPI_LIB =        -lmpich -lmpl -lpthread

对于JPG,建议也做如上相应的修改。
JPG_INC =      -I/home/tree/Software/jpeg
JPG_PATH =         -L/usr/local/lib
JPG_LIB =        /usr/local/lib/libjpeg.a
4楼2016-04-01 01:31:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mymarik

铁杆木虫 (小有名气)

引用回帖:
4楼: Originally posted by alundilong at 2016-04-01 01:31:26
FFT_INC =            -DFFT_FFTW3 -DFFT_SINGLE -I/home/tree/Software/fftw/kernel
FFT_PATH =      -L/usr/local/lib
FFT_LIB =        -lfftw3
看到这里,我有如下推测,不知准不准确:楼主的fftw是自己进行 ...

我安装的时候没有指定地址  直接是 ./configure
我是搜索了相应文件所在的目录设定的那些路径  我的fftw 文件夹里没有lib  相关的文件也被安装在了系统的lib里面  
你说的这个问题  如果我路径设置错误  那应该没有办法编译出可计算的程序吧  可是 我在这之前 没有添加其他package的时候就成功编译出来可以跑的程序
所以 我觉得是不是某个package里对fftw3d有要求  如果我去掉这个包  应该就不会有这个提示吧
我是这样想的

发自小木虫IOS客户端
5楼2016-04-01 11:22:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

alundilong

木虫 (正式写手)

引用回帖:
5楼: Originally posted by mymarik at 2016-03-31 21:22:04
我安装的时候没有指定地址  直接是 ./configure
我是搜索了相应文件所在的目录设定的那些路径  我的fftw 文件夹里没有lib  相关的文件也被安装在了系统的lib里面  
你说的这个问题  如果我路径设置错误  那应该没有 ...

这个还是有可能编译通过的,有些包不需要依赖fftw或者类似的其他包,自然就能通过编译。这也解释了,当你添加某些包之后,编译就会失败的其他现象。

另外,直接configue,一般默认的库文件会装到/usr/local/lib下,头文件会装到/usr/local/include。你的Makefile文件中库文件的路径很可能是对的,然而头文件的路径很可能是错的。

P.s.
为了避免header files和 lib的不一致,最好在configure时候,用--prefix来指定安装路径。
6楼2016-04-01 11:46:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mymarik

铁杆木虫 (小有名气)

引用回帖:
6楼: Originally posted by alundilong at 2016-04-01 11:46:22
这个还是有可能编译通过的,有些包不需要依赖fftw或者类似的其他包,自然就能通过编译。这也解释了,当你添加某些包之后,编译就会失败的其他现象。

另外,直接configue,一般默认的库文件会装到/usr/local/lib ...

我按你说的改了下  不过 还是这样  
有些小崩溃
这个fftw3d 是很多都需要用到吗?

发自小木虫IOS客户端
7楼2016-04-01 13:46:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

贝壳徒

木虫 (小有名气)

你可以看看我最新发布的资源,在小木虫里,题为“Ubuntu中lammps串并行安装带reax/meam/poems全解读”。希望会对你有帮助的。

发自小木虫Android客户端

» 本帖已获得的红花(最新10朵)

8楼2016-04-01 18:37:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bluewhale

铁杆木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
mymarik: 金币+30, ★★★★★最佳答案, 已经解决了  应该就是你说的这个问题  我装了下2.1.5的版本  然后make clean-all 后 重新编译就好了 2016-04-01 21:04:00
lammps是用FFTW (最后版2.1.5),而不是FFTW3.
9楼2016-04-01 20:08:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mymarik

铁杆木虫 (小有名气)

引用回帖:
9楼: Originally posted by bluewhale at 2016-04-01 20:08:34
lammps是用FFTW (最后版2.1.5),而不是FFTW3.

我装了一下 2.1.5的版本 还是这样的问题  
下面这个地方是这样修改吗?
FFT_INC =            -DFFT_FFTW -DFFT_SINGLE -I/usr/local/include
FFT_PATH =      -L/usr/local/lib
FFT_LIB =        -lfftw

还有 我需要先卸载最新的版本吗?
谢谢
10楼2016-04-01 20:50:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 mymarik 的主题更新
信息提示
请填处理意见