2

我試圖編譯一個軟件包,叫做FDMNES X射線吸收光譜建模MPI在Windows首次使用Visual Studio 2010和英特爾的試用版引用解析的外部符號MPI_INIT作曲家XE 2011 SP1,ifort結合Visual Fortran編譯器與英特爾Parrelel工作室2011年我曾設法讓所有使用ifort的64位版本編譯的目標文件,但是當涉及毛錢我收到被跟隨錯誤的文件鏈接:錯誤LNK2019:在功能

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位英特爾MPI庫,以及MPICH2 64位庫,但無濟於事。我也嘗試使用此生成的文件,從包裝的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位窗口下使用MPI進行編譯。任何幫助將非常感謝!謝謝。

+0

你已經發布的第一個錯誤消息表明編譯器發現的MPI頭文件(否則你會一直沒有經過編譯階段),鏈接器找不到實際的MPI庫。確保您的MPI庫已正確安裝,並且鏈接器提供了正確的路徑。 – 2012-07-19 17:43:08

+0

您是否真的將庫添加到項目中?僅僅添加庫的路徑是不夠的,你必須指定它也需要鏈接。 – mathematician1975 2012-07-19 22:52:43

回答

3

這裏微軟給出一些解釋關於Linker Tools Error LNK2019,希望這可以幫助你。
Linker Tools Error LNK2019


另一種方式來解決這個問題是去該項目的屬性 - >接頭 - >輸入 - >附加
依賴,添加什麼lib你需要到這裏。
例如,如果您使用timeGetDevCaps函數,並且您收到LNK2019錯誤,則可以將Winmm.lib添加到Additional Dependencies之後,所有內容都將正常工作。

0

「Диспетчерустройств」 - >「創建平臺」 - >「ARM X64」 - >確定

+1

考慮添加一個你的答案的解釋,如果確實這*是一個答案。 – 2015-02-15 20:24:07