코드에서 소위 기능 플래그를 설정하기 위해 외부 파일을 사용합니다. 거기에서 우리는 정의 매크로 우리는 단지 C에 우리의 소프트웨어를 포팅 ++ 다음 오류는 OpenMPI 내부 데이터 유형을 사용하는 양육 해당 파일을 찾고 specificially이 하나OpenMPI와의 이름 충돌을 피하는 방법은 무엇입니까?
/usr/local/openmpi-1.6.4/include/openmpi/ompi/mpi/cxx/constants.h:174:28: error: declaration does not declare anything [-fpermissive]
, 온
#define LB
LB
이라고합니다.
OMPI_DECLSPEC extern const Datatype LB;
어떻게 이름 충돌을 피할 수 있습니까? #define LB
매크로의 이름을 바꾸면 이전 버전과의 호환성이 손상 될 수 있으므로 옵션이 아닙니다. C
-Interface of OpenMPI를 C++
과 함께 사용할 수 있습니까?
가능한 더러운 해킹은 '#define LB LB'일 수 있습니다. –
가장 깨끗한 방법은'# define'이 번역 단위의'#includeed' OpenMPI 헤더 뒤에 나타나는지 확인하는 것입니다. –
@Michael Wild : 안타깝게도 'mpi.h'가 너무 많은 파일에 포함되고 기능 플래그가 처음에 구문 분석되어 기능을 설정하거나 해제 할 수 없으므로 불가능합니다. –