Код :: Блоки и MPI

0

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

  • Поиск каталогов (компилятор): C:\Program Files\MPICH2\include
  • Поиск каталогов (Linker): C:\Program Files\MPICH2\lib
  • Настройки компоновщика: mpi.lib

мой компилятор всегда (из-за потока) имеет -std = С++ 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 .
Теги:
mpi
codeblocks

1 ответ

1

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

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

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

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню