C++ BLAS、Lapack、Gomp库的链接问题(64位)

C++ BLAS、Lapack、Gomp库的链接问题(64位),c++,lapack,blas,pardiso,C++,Lapack,Blas,Pardiso,我一直试图用以下命令编译我的C++程序: g++ -g -O0 -fopenmp -L/home/donkokse/development/workspace -o "NS_Solver" $(OBJS) $(USER_OBJS) $(LIBS) 与 在Ubuntu 13.04下,64位。问题是,我仍然不断收到以下错误消息: /home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `_gfor

我一直试图用以下命令编译我的C++程序:

g++ -g -O0 -fopenmp -L/home/donkokse/development/workspace -o "NS_Solver" $(OBJS) $(USER_OBJS) $(LIBS)

在Ubuntu 13.04下,64位。问题是,我仍然不断收到以下错误消息:

/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `_gfortran_concat_string'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `dtrmm_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `lsame_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `dlartg_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `dswap_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `dgemm_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `dger_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `GOMP_loop_dynamic_next'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `GOMP_single_start'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `dgels_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `dlartv_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `zscal_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `zlaev2_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `sswap_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `GOMP_parallel_end'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `izamax_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `zgetrf_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `dsteqr_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `slaswp_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `dtrsv_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `dsyr_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `omp_get_thread_num_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `zsyr_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `zgeru_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `sscal_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `dlaswp_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `zgemm_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `dgeev_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `GOMP_atomic_end'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `dscal_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `zdscal_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `ilaenv_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `zgemv_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `dgetrf_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `isamax_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `zlacgv_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `omp_get_num_threads_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `dsyevr_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `zpotf2_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `sgemm_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `omp_get_num_threads'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `dsyr2k_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `ssyr_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `dsytri_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `sgetrf_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `GOMP_critical_name_start'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `dtrsm_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `dlascl_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `idamax_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `dpotrf_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `dorgtr_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `GOMP_loop_end_nowait'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `GOMP_loop_end'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `dsytd2_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `GOMP_critical_start'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `dsytrf_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `zher_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `dggev_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `omp_get_wtime_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `zrot_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `GOMP_critical_name_end'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `_gfortran_exit_i4'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `dlatrd_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `GOMP_critical_end'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `dlapy2_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `zlaswp_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `GOMP_atomic_start'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `zswap_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `xerbla_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `dormqr_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `GOMP_barrier'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `dgeqrf_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `dgemv_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `sgemv_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `dsterf_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `GOMP_parallel_start'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `dlamch_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `ztrsm_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `sger_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `strsm_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `_gfortran_os_error'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `omp_get_thread_num'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `dgetrs_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `GOMP_loop_dynamic_start'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `dgetri_'
/home/harry/development/libpardiso412-GNU443-X86-64.so: undefined reference to `dlansy_'
collect2: error: ld returned 1 exit status
make: *** [NS_Solver] Error 1
它似乎找到了图书馆。我尝试了不同的方法,比如重新安装库,更改库的顺序,检查是否有64位版本的库

objdump -a /usr/lib/libblas.so
以及页面上“图书馆递归引用”的建议 ,尽管分组不适用于g++。
还有什么不对劲?我还尝试为Theano安装编译openMP的优化版本(尽管项目不同)。这会不会把我的openMP搞砸了?我如何测试它?我想再次删除该优化版本,并从synaptic软件包管理器中安装该版本。我该怎么做?

您是否在需要的地方使用
extern“C”
?谢谢您的回答。我在代码中有一些部分,特别是那些使用pardiso库函数的部分,它们是纯C的-我可以使用extern C来实现它们。另一方面,我不确定是否需要外部“C”——在我决定在硬盘上安装Ubuntu之前,这个项目的编译工作是在VMWare上安装了两年的openSuse。openSuse的安装是32位的,Ubuntu是64位的。是否会因为架构的变化而出现问题?是否还会因为较新的编译器/库版本而出现问题/更改?
objdump -a /usr/lib/libblas.so