Сборка ParaView для Visual Studio Express 2010 с использованием CMAKE - PullRequest
0 голосов
/ 15 марта 2012

Я использую CMake для сборки ParaView с Visual Studio Express 2010. У меня проблема с сгенерированным решением.Проблема заключается в том, что одна из записей, созданных для дополнительных зависимостей (библиотеки MPI), должна быть разделена точкой с запятой, но разделена пробелами.Результатом этого является то, что компоновщик генерирует много ошибок при сборке проекта.

Это сообщение об ошибке:

ССЫЛКА: фатальная ошибка LNK1104: невозможно открыть файл 'C: \ Program Files (x86) \ MPICH2 \ lib \ mpi.lib C: \Program Files (x86) \ MPICH2 \ lib \ cxx.lib '.

В конфигурации проекта есть запись, которая гласит:

C: \ Program Files (x86) \ MPICH2 \ lib \ mpi.lib C: \ Program Files (x86) \ MPICH2 \ lib \ cxx.lib

Но должны быть две записи, разделенные точкой с запятой:

C: \ Program Files (x86) \ MPICH2 \ lib \ mpi.lib; C: \ Program Files (x86) \ MPICH2 \ lib \ cxx.lib

Я пыталсяисправить это, исправив ссылку на библиотеки, вручную спроецировать проект, но это занимает слишком много времени.

Я думаю, что это можно исправить на уровне CMake или на уровне Visual Studio (путем исправления записей дополнительных зависимостей для всего решения), но на самом деле не знаю, как сделать что-либо из этого.Я недостаточно знаком с архитектурой CMake, чтобы точно определить, что мне нужно изменить.Как я могу решить это?

Ответы [ 2 ]

0 голосов
/ 27 марта 2012

Это похоже на ошибку в модуле FindMPI.Самый быстрый способ исправить это - отредактировать CMakeCache.txt в корне дерева сборки.Вам нужно будет отредактировать записи MPI_LIBRARY и MPI_LIBRARIES, чтобы использовать точки с запятой вместо пробелов.

0 голосов
/ 15 марта 2012

Проверьте ваш CMakeLists.txt на наличие строки с TARGET_LINK_LIBRARIES. Если эта команда использует кавычки внутри скобок, попробуйте удалить их. Например, если у вас есть:

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

изменить на:

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

Если это не поможет, вы, вероятно, должны опубликовать CMakeLists.txt в своем вопросе.

...