CMake:根据MPI编译C ++共享库时构建失败

时间:2016-05-12 15:53:26

标签: c++ cmake shared-libraries mpi static-libraries

问题概述

我正在使用CMake构建一个包含基于MPI的库的项目。 lib必须构建为共享和静态。当我在Fedora 20系统上构建项目时,一切都没有问题。当我在Mac OS X El Capitan系统上构建它时,构建过程失败并出现类型错误:

mpicxx

补充说明

  • 我无法激活强制自动编译libs作为共享和静态的选项,因为这个特定的库是唯一需要同时构建的库。
  • 强制用MPI包装器(MPILib.h)替换C ++编译器命令会导致成功构建,但会完全破坏CLion的代码分析。

最小(非)工作示例

档案:#include <mpi.h> void MPILib();

MPILib.c

档案:#include "MPILib.h" void MPILib() { MPI_Init(NULL, NULL); }

CMakeLists.txt

档案:cmake_minimum_required(VERSION 2.6) enable_language(CXX) set(CMAKE_MACOSX_RPATH 0) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall") find_package(MPI REQUIRED) include_directories(SYSTEM ${MPI_INCLUDE_PATH}) add_library(mpilib_shared SHARED MPILib.cpp MPILib.h) add_library(mpilib_static STATIC MPILib.cpp MPILib.h)

cmake .

构建命令:

  • make mpilib_static
  • make mpilib_shared(成功)
  • import xlrd import unicodecsv def xls_to_csv (xls_filename, csv_filename): wo = xlrd.open_workbook(xls_filename) st = wo.sheet_by_index(0) fl = open(csv_filename,"wb") csv_out = unicodecsv.writer(fl, encoding='utf-8', quotechart='"') for row_number in range (st.nrows): csv_out.writerow(st.row_values(row_number)) fl.close() xls_to_csv('PT_BR.POSTP.20160508_vx27.xlsx','prueba.csv') (失败)

0 个答案:

没有答案