首页 > 编程语言 >为python编译C++模块时一定要注意的事情—————不要在anaconda环境下使用cmake来编译C++扩展模块!!!

为python编译C++模块时一定要注意的事情—————不要在anaconda环境下使用cmake来编译C++扩展模块!!!

时间:2022-10-02 18:22:22浏览次数:50  
标签:++ C++ python 编译 模块 anaconda

平时搞python的人很多都会有安装C++扩展模块的需求,而往往这些C++模块都是使用CMAKE做编译配置的,但是如果你这时候shell环境是使用anaconda的话,那么cmake默认调用的GCC和G++就不是系统目录下的而是anaconda应用环境下的,这样往往会造成G++/GCC编译器版本不对的报错,但是你查看系统目录下的GCC/G++版本却发现不出任何问题,这时候就极有可能是调用了anaconda自带的GCC/G++编译器而不是系统目录下的。

 

 

=======================================

 

 

最近在给python安装一个C++扩展模块,此时使用的是anaconda创建的python环境,编译过程中总是报错,说  #error "C++ versions less than C++14 are not supported.",于是查看系统的G++版本

 

 

 

发现系统的g++编译器版本已经是完全支持的,但是此时为什么报错呢。正好我这个时候准备怀疑是CMAKE的问题,打算重新安装cmake,于是想着先进行编译CMAKE,然后再去看看情况。

 

 

 

对CMAKE源码配置,得到下面的结果:

 

 

重点信息:

C compiler on this system is: /home/devil/anaconda3/bin/x86_64-conda-linux-gnu-cc -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /home/devil/anaconda3/include 

可以看到在anaconda环境下编译C++扩展默认使用的编译器不是系统路径下的而是anaconda自带的,这样很容易造成版本不支持的问题。

 

标签:++,C++,python,编译,模块,anaconda
From: https://www.cnblogs.com/devilmaycry812839668/p/16749179.html

相关文章

  • C++——参数传递
    前言:形式参数(形参):出现在函数定义的地方,形参之间以“,”分隔,其规定了函数接受数据的类型和数量(参数的数目)实际参数(实参):出现在函数调用的地方,用于初始化形参(实参的......
  • c/c++ 时间函数
    c语言相关函数#include<stdio.h>#include<time.h>voidtime_test_func(){time_tseconds;seconds=time(NULL);printf("从1970-01-0100:00:00到......
  • Java - 编写和编译引用自己的类库
    Java-编写自己的类库2021-08-02   许多程序代码我们先用到以后的开发中。比如:排序算法等。避免每次使用都要重新写一遍这些代码。如果可以像调用jdk一样的方法......
  • 《Effective C++:改善程序与设计的55个具体做法》阅读笔记
    Item13:使用对象管理资源资源管理对象:资源管理对象管理着其他对象的资源,当资源管理对象的析构函数被调用时,所管理的资源会被自动释放。资源管理对象就是在其析构函数中......
  • C++——史蒂夫
    #include<iostream>#include<string>#include<windows.h>#include"minecraft.h"usingnamespacestd;TxMinecraftmc;intmain(intargc,char**argv){//连接我的世......
  • C/C++ 实现INI配置文件读写 [转载]
    INI文件是一种标准的Windows平台配置文件,通常这种配置文件用于保存系统软件的一些基本配置参数,如下代码是本人从网络上收集到的一段纯C++编写的配置解析......
  • C++实现双向RRT算法
    C++实现双向RRT算法背景介绍RRT(Rapidly-exploringRandomTrees)是StevenM.LaValle和JamesJ.KuffnerJr.提出的一种通过所及构建空间搜索树实现对非凸高维空间快速搜......
  • [ 数据结构 - C++]红黑树RBTree
    在上篇文章我们了解了第一种平衡二叉搜索树AVL树,我们知道AVL树是通过平衡因子来控制左右子树高度差,从而将二叉树变成一颗平衡二叉搜索树。本篇文章我们将要了解另外一种平衡......
  • 语音识别:安装编译Kaldi详细过程及遇到的一些问题汇总
    语音识别-Kaldi的安装编译实录(Ubuntu环境)  https://blog.csdn.net/Ryan0828/article/details/121179225?ops_request_misc=&request_id=&biz_id=102&utm_term=Checkin......
  • c++的四种类型转换
    const_cast<> 表示消除const属性static_cast<> 编译时就检查、没鸟用reinterpret_cast<>表示两个没关系的类型转换dynamic_cast<>运行时转换、父转子 总结:没......