2012-03-14 2 views
0

Visual Studio Express 2010을 사용하여 ParaView를 빌드하는 데 CMake를 사용하고 있습니다. 생성 된 솔루션에 문제가 있습니다. 문제는 추가 종속성 (MPI 라이브러리)을 위해 생성 된 항목 중 하나는 세미콜론으로 구분해야하지만 공백으로 구분해야한다는 것입니다. 결과적으로 링커는 프로젝트를 빌드 할 때 많은 오류를 생성합니다.CMAKE를 사용하여 Visual Studio Express 2010 용 ParaView 빌드

LINK : 치명적인 오류 LNK1104 :

오류 메시지입니다 파일을 열 수 없습니다 'C : \의 Program Files (x86) \ MPICH2 \ lib 디렉토리 \ mpi.lib C : \ 프로그램 파일 (86) \ MPICH2 \ lib \ cxx.lib '에 있습니다. 프로젝트 구성에서

읽기 항목이있다 :

C : \ 프로그램 파일 (86) \ MPICH2 \ lib 디렉토리 \ mpi.lib C : \의 Program Files (x86) \ MPICH2 \ LIB \ cxx.lib

그러나 세미콜론으로 구분 된 두 개의 항목이 있어야합니다 :

C : \의 Program Files (x86) \ MPICH2 \ lib 디렉토리 \ mpi.lib; C : \ 프로그램 파일 (x86) \ MPICH2 \ lib \ cxx.lib

프로젝트에 의해 수동으로 프로젝트에 대한 참조를 수정하여 문제를 해결하려고했지만 너무 오래 걸립니다.

나는 이것이 CMake 레벨이나 Visual Studio 레벨 (전체 솔루션을위한 추가적인 의존성 엔트리를 수정 함으로서)에서 고정 될 수 있다고 생각하지만 그러한 것들을하는 방법을 정말로 모른다. 나는 내가 변화시켜야 할 것을 정확히 지적하기 위해 CMake의 아키텍처에 익숙하지 않다. 이 문제를 어떻게 해결할 수 있습니까?

답변

0

CMakeLists.txt에서 TARGET_LINK_LIBRARIES 인 줄을 확인하십시오. 이 명령이 대괄호 안에 따옴표를 사용하면 제거하십시오. 예를 들어, 당신이있는 경우 :에

TARGET_LINK_LIBRARIES(MainExe "${lib1} ${lib2}") 

변화 그것을 :

TARGET_LINK_LIBRARIES(MainExe ${lib1} ${lib2}) 

를이 도움이되지 않으면, 당신은 아마 당신의 질문에 CMakeLists.txt을 게시해야한다.

0

이것은 FindMPI 모듈의 버그처럼 보입니다. 이를 수정하는 가장 빠른 방법은 빌드 트리의 루트에있는 CMakeCache.txt를 편집하는 것입니다. 공백 대신 세미콜론을 사용하려면 MPI_LIBRARY 및 MPI_LIBRARIES 항목을 편집해야합니다.

관련 문제