我成功编译with some help,它在Windows上从命令行编译并运行MPI程序。现在我试图用我的IDE代码:: blocks来编译这个程序,并且它失败了。设置Code :: Blocks以使用MPICC.exe编译MPI程序
Under Settings -> Compiler... -> Other Settings -> Advanced Options -> Command line macros
予移除所有不必要的标志和simly左:
$compiler $file
Settings -> Compiler... -> Toolchain executables
我simly具有包装器MPI mpicc.exe
对于C prgrams和mpic++.exe
用于C++。
现在当我点击Build
(按Ctrl + F9)一个小的弹出窗口中打开说明:
cl.exe - application error
错误代码是0xc00000be
我得到:
mpicc.exe C:\Entwicklung\src\mpi_prime.c Skipping linking (no linker program set): C:\Entwicklung\src\mpi_prime.exe Process terminated with status -1073741634 (1 minutes, 37 seconds) 0 errors, 0 warnings (1 minutes, 37 seconds)
在这里,我再次卡住了,留下了几个问题?
- 我应该保留mpicc.exe包装?
- 代码::块试图总是调用一个链接器等在哪里可以关闭?
- 我想从一开始就将我的编译器从cl改为gcc,我应该先尝试一下吗?
编辑1:
mpicc.exe /nologo /W3 /MD /Ox /DNDEBUG /IC:\Entwicklung\CUDA\VS2012~1\VC\include /IC:\Entwicklung\CUDA\VS2012~1\VC\include /c main.c /Foobj\Release\main.obj link.exe /nologo /LIBPATH:C:\Entwicklung\CUDA\VS2012~1\VC\include /LIBPATH:C:\Entwicklung\CUDA\VS2012~1\VC\include /out:bin\Release\mpi_test_projektarbeit.exe "..\..\..\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib\Kernel32.Lib" msvcrt.lib msvcprt.lib "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib\Kernel32.Lib" obj\Release\main.obj Process terminated with status -1073741634 (0 minutes, 1 seconds) 0 errors, 0 warnings (0 minutes, 1 seconds)
我相信我也设置了一切,因为它应该是,但我仍然得到错误代码的弹出窗口。我会捣鼓它。如果什么都行不通,我会尝试重新安装code :: blocks,这可能会有所帮助。
编辑2:
首先,它仍然没有运行。第二,我相信我现在对现在发生了什么以及什么是错误有了更好的理解。
通过尝试不同的东西,我试图直接使用cl.exe没有mpicc.exe包装。我选择Settings -> Compiler... -> Microsoft Visual C++ 2010
,codeblocks提供给我。试图建立项目我收到了完全相同的error message(不得不约束我的noScript给我看消息),与mpicc.exe
一样。 mpicc.exe在其mpicc-wrapper-data.txt
宣言中调用cl.exe。
因此,有一些谷歌的魔法,我发现在codeblocks论坛this页,其中有人有完全相同的错误信息。他们的建议是添加额外的环境路径,这让我想到了。在我从命令行运行mpicc
之前,我必须首先运行vcvarsall.bat
,因为我得到一个错误,mspdb110.dll
丢失。所以我仔细看了一下vcvarsall.bat
,它调用另一批文件vcvars32.bat
。该文件暂时添加了PATH变量。所以我添加
C:\发展协会\ CUDA \ VS 2012 \ Common7 \ IDE \
永远是我路上,和mpicc.exe
可以在没有任何缺少DLL的错误信息被调用,而是试图编译,出现一些链接器错误无法找到advapi32.lib
。我会深入研究它,只要在命令行上运行而没有vcvars32.bat
的帮助,我会再次从CB尝试它。我希望这是我所有的问题。
还有一件事让我困惑一点,没什么严重的,但是当我卸载CB并再次安装它时,CB可能会在编译器设置的某个地方保存。我检查了我的安装文件夹:所有文件在卸载后都被删除了,所以我也删除了USER\AppData\
下的CB文件夹。然而,重新安装CB,CB启动时仍然存在的编译器设置,询问我是否要导入它们!!?
您是否在使用OpenMPI 1.6.2(即上一个本机Windows版本)? –
是的,正好OenMPI 1.6.2-win32 – aldr