2014-10-16 17 views
0

Я установил Code :: Blocks и MPICH2 и CONFIG мой Code :: Blocks, как показано ниже:Code :: Blocks и MPI

  • Каталоги поиска (составитель): C: \ Program Files \ MPICH2 \ включают
  • каталоги (Linker): C: \ Program Files \ MPICH2 \ Lib
  • настройки компоновщика mpi.lib

мой компилятор всегда (из-за потока) имеют -std = C++ 0x вариант! также я добавил bin dir MPICH2 на свой путь. и моя ОС выиграла 7 x64. , но в то время как я пытаюсь скомпилировать простую программу привет мир я получил эту ошибку:

C:\Users\1111\Desktop\CPP Project\MPI\First_MPI\main.cpp|9|undefined reference to `MPI_Init'| 

C:\Users\1111\Desktop\CPP Project\MPI\First_MPI\main.cpp|10|undefined reference to `MPI_Comm_rank'| 

C:\Users\1111\Desktop\CPP Project\MPI\First_MPI\main.cpp|11|undefined reference to `MPI_Comm_size'| 

C:\Users\1111\Desktop\CPP Project\MPI\First_MPI\main.cpp|13|undefined reference to `MPI_Finalize'| 

||=== Build failed: 4 error(s), 36 warning(s) (0 minute(s), 1 second(s)) ===| 
and finally this is my code! 

также мой код:

#include <iostream> 
#include "mpi.h" 
#include <string> 
using namespace std; 
int main(int argc, char *argv[]) 
{ 
    int my_rank; 
    int my_size; 
    MPI_Init(&argc, &argv); 
    MPI_Comm_rank(MPI_COMM_WORLD, &my_rank); 
    MPI_Comm_size(MPI_COMM_WORLD, &my_size); 
    cout<< "I'm rank (processor number) " << my_rank << " of " << my_size << "processor"; 
    MPI_Finalize(); 
    return 0; 
} 

, как я могу это исправить?

+0

Убедитесь, что MPICH2 и ваш проект с такой же «битностью», то есть оба являются 32-разрядными или оба являются 64-разрядными. Кроме того, загляните в каталог 'C: \ Program Files \ MPICH2 \ lib' и убедитесь, что библиотека не вызывается, например. 'Mpich.lib'. –

ответ

1

Ошибки, которые вы видите, происходят из-за того, что ваш компилятор не смог найти libmpich.

У вас есть C: \ Program Files \ MPICH2 \ bin \ mpicc? Вы должны использовать это для создания своей программы.

Если у вас нет обертки mpicc, вам нужно добавить библиотеку mpich в свою ссылку.

Вы должны ознакомиться с документом Code: Blocks для добавления компилятора. В частности, http://svn.code.sf.net/p/codeblocks/code/trunk/COMPILERS дает такой совет:

Если вы установили компилятор на каталог, отличный от значения по умолчанию, запуска Code :: Blocks. Если вы впервые запускаете его, будет автоматически обнаружен компилятор . Если нет, перейдите к разделу «Настройки/Конфигурированиеплагинов/Компилятор», выберите установленный вами компилятор, перейдите на вкладку «Программы» и нажмите «Автоматическое обнаружение». Если вы получите сообщение , что компилятор был обнаружен автоматически, поздравляем! Если нет, то нажмите кнопку с тремя точками рядом с кнопкой «Автоматическое обнаружение» и выберите каталог установки вашего компилятора вручную.