나는 HPC에서 일하고있다. HPC에는 이전 버전의 Boost가 설치되었으며 Boost 라이브러리에는 Boost.MPI가 없습니다. HPC에 설치하려면 관리자에게 요청했습니다. 하지만 그들은 내 홈 디렉토리에 설치해달라고 요청했습니다. 그래서 나는 boost와 boost.mpi를 모두 홈 디렉토리에 설치했다. 부스트 라이브러리가 올바르게 작동하는 것 같습니다. 그러나 아래 명령을 사용하여 다음 코드를 실행하려고하면 오류가 발생합니다.부스트 .MPI 문제
테스트 코드 :
#include <boost/mpi/environment.hpp>
#include <boost/mpi/communicator.hpp>
#include <iostream>
namespace mpi = boost::mpi;
int main(int argc, char* argv[])
{
mpi::environment env(argc, argv);
mpi::communicator world;
std::cout << "I am process " << world.rank() << " of " << world.size()
<< "." << std::endl;
return 0;
}
빌드 명령을
mpiCC -I/home1/username/boost/include
-I/usr/mpi/gcc/openmpi-1.2.8/include/
-L/home1/username/boost/lib
-L/usr/mpi/gcc/openmpi-1.2.8/lib64/openmpi
-lboost_mpi-gcc-mt-1_35 testboostmpi2.cpp
나는 다음과 같은 오류가 비명을 지르고있어 : 너희 중에 누구든지 할 수있는 경우에
testboostmpi2.o: In function `main':
testboostmpi2.cpp:(.text+0x59): undefined reference to
`boost::mpi::environment::environment(int&, char**&, bool)'
testboostmpi2.cpp:(.text+0x63): undefined reference to
`boost::mpi::communicator::communicator()'
testboostmpi2.cpp:(.text+0x86): undefined reference to
`boost::mpi::environment::~environment()'
testboostmpi2.cpp:(.text+0xb9): undefined reference to
`boost::mpi::environment::~environment()'
나는 매우 감사하게 될 거라고 도움.
** "원본 파일을 마지막 인수가 아닌 첫 번째 인수로 넣어야 올바른 순서가됩니다."**이 +1 때문에이 세부 정보 때문에 설치 및 재설치하는 데 많은 시간을 투자했습니다. –