Microsoft HPC Pack 2008 SDK 的链接器错误
Posted
技术标签:
【中文标题】Microsoft HPC Pack 2008 SDK 的链接器错误【英文标题】:Linker error with Microsoft HPC Pack 2008 SDK 【发布时间】:2012-05-22 14:08:36 【问题描述】:我尝试在 Windows 7 x64 中使用 OpenMP 和 MPI 编写程序。 我找到了教程,如何在 VS2010 中安装 MPI
http://msdn.microsoft.com/en-gb/library/ee441265.aspx#BKMK_debug1
但是,当我尝试编译解决方案时,出现链接器错误:
1>main.obj : error LNK2019: unresolved external symbol _MPI_Finalize@0 referenced in function _main
1>main.obj : error LNK2019: unresolved external symbol _MPI_Barrier@4 referenced in function _main
1>main.obj : error LNK2019: unresolved external symbol _MPI_Recv@28 referenced in function _main
1>main.obj : error LNK2019: unresolved external symbol _MPI_Ssend@24 referenced in function _main
1>main.obj : error LNK2019: unresolved external symbol _MPI_Comm_size@8 referenced in function _main
1>main.obj : error LNK2019: unresolved external symbol _MPI_Comm_rank@8 referenced in function _main
1>main.obj : error LNK2019: unresolved external symbol _MPI_Init@8 referenced in function _main
我可能需要安装其他东西吗?可能是 HPC Pack 2008 R2 Service Pack 2?
【问题讨论】:
【参考方案1】:请务必查看您提供的链接中“在 Visual Studio 2010 中创建 C++ MPI 示例项目”部分下的第 3 步(“为项目指定其他属性”)
错误通知您链接器找不到包含各种MPI* 函数定义的库。链接器设置(库目录(3c)和链接器->输入(3d))是为链接器指定使用哪些库以及在哪里找到它们的设置
【讨论】:
我的电脑有相同的路径。没问题,可能这个库包含在其他地方? 链接器/输入/附加依赖项设置中有msmpi.lib
吗?如果是,您是否在“C:\Program Files\Microsoft HPC Pack 2008 SDK\Lib\i386”目录中有该文件?
是的,但我使用 C:\Program Files\Microsoft HPC Pack 2008 SDK\Lib\amd64。使用 i386 一切正常
我认为您的项目设置为 32 位应用程序(这就是为什么它适用于 i386
。amd64
文件夹中的 msmpi.lib
用于 64 位应用程序。按照说明操作在this page 上将您的项目设置为面向 64 位平台以上是关于Microsoft HPC Pack 2008 SDK 的链接器错误的主要内容,如果未能解决你的问题,请参考以下文章
SQLserver2008 service pack1啥意思
使用 MFC Feature Pack 1 在 VS2008 中停靠选项卡式窗格位置
Windows Server 2008 R2 活动目录的安装和配置