首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法为basic PETSc程序生成生成文件

无法为basic PETSc程序生成生成文件
EN

Stack Overflow用户
提问于 2015-05-14 07:59:44
回答 1查看 656关注 0票数 0

我有一个使用PETSC的非常基本的程序

代码语言:javascript
复制
 #include "PETSC/petsc.h"
 #include "PETSC/petscsys.h"
 #include "PETSC/petscmat.h"

 int main(int argc, char *argv[]) {
     PetscMPIInt    rank,size;
     PetscInitialize(&argc,&argv,0,0);
     MPI_Comm_size(PETSC_COMM_WORLD,&size);
     MPI_Comm_rank(PETSC_COMM_WORLD,&rank);
     PetscPrintf(PETSC_COMM_WORLD,"Number of processors = %d, rank = %d\n",size,rank);
     PetscSynchronizedPrintf(PETSC_COMM_WORLD,"synchronized rank = %d\n",rank);

     MPI_Barrier(PETSC_COMM_WORLD);
 PetscFinalize();
     return 0;
 }

但是,当我尝试使用mpic++进行编译时,我得到了对PETSC_COMM_WORLDPetscInitialize和其他垃圾文件的未定义引用错误

我现在正在尝试使用build和cmake。这是我在CMakeLists上的尝试

代码语言:javascript
复制
 CMAKE_MINIMUM_REQUIRED(VERSION 2.8)

 PROJECT(checkMPI)

 SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake-modules")

 set(PETSC_ARCH linux-gnu)
 set(PETSC_DIR l${PROJECT_SOURCE_DIR}/third-party/petsc)

 FIND_PACKAGE(PETSc REQUIRED)

 INCLUDE_DIRECTORIES(${PETSC_INCLUDES})
 ADD_DEFINITIONS(${PETSC_DEFINITIONS})

 ADD_EXECUTABLE(checkMPI checkMPI.cpp)

 TARGET_LINK_LIBRARIES(checkMPI ${PETSC_LIBRARIES})

此外,我还有一个目录cmake-modules,其中包含PETSc的cmake-module

但是,当我尝试通过输入ccmake ..,然后输入c来生成makefile时,我得到了输出

代码语言:javascript
复制
CMake Error at cmake-modules/FindPETSc.cmake:127 (message):
   The pair PETSC_DIR=l/directory/HPC/third-party/petsc
   PETSC_ARCH=linux-gnu do not specify a valid PETSc installation
 Call Stack (most recent call first):
   CMakeLists.txt:10 (FIND_PACKAGE)

 CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:108
(message):
   PETSc could not be found.  Be sure to set PETSC_DIR and PETSC_ARCH.
   (missing: PETSC_INCLUDES PETSC_LIBRARIES PETSC_EXECUTABLE_RUNS)
 Call Stack (most recent call first):
   /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:315

有人能帮上忙吗?

EN

回答 1

Stack Overflow用户

发布于 2015-05-14 16:03:43

基于FindPETSC.cmakePETSC_ARCH的默认选项似乎是:

代码语言:javascript
复制
linux-gnu-c-debug 
linux-gnu-c-opt
x86_64-unknown-linux-gnu 
i386-unknown-linux-gnu

或者是您在manual build中使用的那个。

CMake尝试查找文件${PETSC_DIR}/${PETSC_ARCH}/include/petscconf.h${PETSC_DIR}/bmake/${PETSC_ARCH}/petscconf.h

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30227143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档