错误LNK2019:函数中引用的未解析的外部符号MPI_INIT

时间:2012-07-18 19:30:17

标签: visual-studio-2010 compiler-errors mpi windows-7-x64 intel-fortran

我正在尝试使用Visual Studio 2010和英特尔Composer XE 2011 SP1的试用版,ifort visual fortran编译器,在Windows中首次使用MPI编译一个名为FDMNES的X射线吸收光谱建模软件包。与英特尔Parrelel Studio 2011结合使用。我已经设法使用64位版本的ifort编译了所有目标文件,但当它来到链接文件的角钱时我收到了跟随错误:

1>------ Build started: Project: Console2, Configuration: Release x64 ------
1>Linking...
1>main.obj : error LNK2019: unresolved external symbol MPI_INIT referenced in function MAIN__
1>main.obj : error LNK2019: unresolved external symbol MPI_COMM_SIZE referenced in function MAIN__
1>main.obj : error LNK2019: unresolved external symbol MPI_COMM_RANK referenced in function MAIN__
1>general.obj : error LNK2019: unresolved external symbol MPI_BCAST referenced in function RESEAU
1>potential.obj : error LNK2001: unresolved external symbol MPI_BCAST
1>main.obj : error LNK2001: unresolved external symbol MPI_BCAST
......etc
1>x64\Release\Console2.exe : fatal error LNK1120: 7 unresolved externals
1>
1>Build log written to  "file://C:\Users\Arturo\Documents\Visual Studio 2010\Projects\Console2\Console2\x64\Release\BuildLog.htm"
1>Console2 - 18 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

我尝试通过添加命令/ L“C:\ PathtoMPILibrary \”链接到64位Intel MPI库以及MPICH2 64位库,但无济于事。我也尝试过使用这个makefile,使用mingw32包中的gmake运行:

#Make file for the fdmnes package
objects = main.obj clemf0.obj coabs.obj convolution.obj dirac.obj fdm.obj fprime.obj general.obj hubbard.obj lecture.obj mat.obj metric.obj minim.obj potential.obj scf.obj selec.obj spgroup.obj sphere.obj sub_util.obj tab_data.obj tddft.obj tensor.obj
compiler = mpif90 -O3 -c
fdmnes_mpi : $(objects)
    mpif90 -o fdmnes_mpi $(objects)
main.obj : main.f
    $(compiler) main.f 
clemf0.obj : clemf0.f
    $(compiler) clemf0.f
.....etc

但是当我运行gmake时,我收到以下错误:

Intel(R) Visual Fortran Intel(R) 64 Compiler XE for applications running on Intel(R) 64,
Version 12.1.0.233 Build 20110811
Copyright (C) 1985-2011 Intel Corporation. All rights reserved.

ifort: error #10037: could not find 'link'

我已经筋疲力尽了论坛,我需要在64位Windows下用MPI编译它。任何帮助将非常感谢!感谢。

2 个答案:

答案 0 :(得分:3)

这里微软给出了Linker Tools Error LNK2019的一些解释,希望这可以帮到你 Linker Tools Error LNK2019


解决此问题的另一种方法是转到项目的属性 - >链接器 - >输入 - >附加
依赖关系,在此处添加您需要的lib 例如,如果您使用timeGetDevCaps函数并且出现LNK2019错误,那么您可以将Winmm.lib添加到Additional Dependencies,之后,一切都会正常工作。

答案 1 :(得分:0)

“Диспетчерустройств” - > “创建平台” - > “ARM X64” - >确定