0

我正在使用 CMake 通过 Visual Studio Express 2010 构建 ParaView。生成的解决方案有问题。问题是为其他依赖项(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 的架构不够熟悉,无法确定我需要更改的内容。我该如何解决这个问题?

4

2 回答 2

0

检查您的 CMakeLists.txt 是否有TARGET_LINK_LIBRARIES. 如果此命令在括号内使用引号,请尝试删除它们。例如,如果您有:

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

将其更改为:

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

如果这没有帮助,您可能应该在您的问题中发布 CMakeLists.txt。

于 2012-03-14T23:25:19.367 回答
0

这看起来像是 FindMPI 模块中的一个错误。解决此问题的最快方法是在构建树的根目录中编辑 CMakeCache.txt。您将需要编辑 MPI_LIBRARY 和 MPI_LIBRARIES 条目以使用分号而不是空格。

于 2012-03-26T20:54:22.107 回答