如何通过cppyy程序化生成支持OpenMP的预编译头(PCH)?
生成支持OpenMP的cppyy预编译头(PCH)失败问题
- 一直尝试使用cppyy生成支持OpenMP的预编译头(PCH),但至今未能成功,不想采用手动操作的方式,希望找到自动化解决方案。
- 目前主要尝试通过
os.environ导出环境变量,但该方法效果不稳定,每次生成的代码都是单线程的。 - 特别需要注意:
cppyy_backend.loader.ensure_precompiled_header并非总能生成内容,即便有输出,也无法让C++代码并行运行。
相关代码如下:
import os import glob import cppyy_backend.loader as l os.environ['EXTRA_CLING_ARGS'] = '-fopenmp -O2 -g' l.set_cling_compile_options(True) current_folder = os.path.split(os.path.abspath(__file__))[0] pch_folder = os.path.join(current_folder, 'cling_pch/') if not os.path.exists(pch_folder): os.mkdir(pch_folder) l.ensure_precompiled_header(pch_folder) # 查找PCH文件 pch_path = glob.glob(pch_folder+'/allDict*') if len(pch_path)>0: os.environ['CLING_STANDARD_PCH'] = pch_path[0] else: raise ValueError('无法找到预编译头文件...')
系统配置:
- Ubuntu 18.04.2 LTS
- Python 3.9.0
- cppyy 2.4.0
- cppyy_backend 6.27.0
编辑说明:已确保在检查自定义PCH文件是否生成时,自定义PCH文件夹初始为空。
内容的提问来源于stack exchange,提问作者Thejasvi
相关产品推荐
相关产品推荐

