我想在我的 open suse 12.3 平台上使用 gromacs,但遇到了麻烦。当尝试使用 gmx_template 编译分析工具时,我首先遇到了这个错误:
g++ -L/usr/local/gromacs/lib -o msd msd.o -lmd -lgmx -lfftw3f -lxml2 -lnsl -lm
/usr/lib64/gcc/x86_64-suse-linux/4.7/../../../../x86_64-suse-linux/bin/ld: /usr/local /gromacs/lib/libgmx.a(pthreads.c.o): undefined reference to symbol 'pthread_getaffinity_np@@GLIBC_2.3.4'
/usr/lib64/gcc/x86_64-suse-linux/4.7/../../../../x86_64-suse-linux/bin/ld: note: 'pthread_getaffinity_np@@GLIBC_2.3.4' is defined in DSO /lib64/libpthread.so.0 so try adding it to the linker command line
/lib64/libpthread.so.0: could not read symbols: Invalid operation
collect2: error: ld returned 1 exit status
make: *** [msd] Fehler 1
然后我将 /lib64/libpthread.so.0 添加到 makefile 中的 -L 选项中
但现在我得到了很多这样的错误:
/usr/local/gromacs/lib/libgmx.a(pbc.c.o): In function `put_atoms_in_box_omp._omp_fn.0':
pbc.c:(.text+0x862f): undefined reference to `omp_get_num_threads'
我认为它们都与openmp有关。我对启用openmp支持(可能是-fopenmp)的构建过程了解得不够多,同时我也很惊讶,如果我不得不更改cmake文件以使gromacs工作。我按照他们网站上的 gromacs 安装说明使用了快速而肮脏的安装。
到目前为止我能做什么/做错了什么建议?我正在使用 gcc 4.7