天天看点

近期踩坑记录:关于linux中Qt C++调用python

​​问题起因​​

​​关于Qt中编译cuda生成的cu文件​​

坑1:关于CUDA_ARCH

坑2:关于NVCC_OPTIONS

​​Qt中C++代码调用python​​

pro文件

PYTHONHOME和PYTHONPATH

其他

问题起因

实验室项目分为两部分,一部分是C++接口,负责通过socket收发报文,按协议解析报文,然后传输给后面的算法,算法来进行对数据进行处理(只能说这么多,再说估计就被叫去喝茶了),然后后期项目整合的时候,接口代码需要和算法进行整合,但是算法部分明没有在服务器上做过测试,所以我在整合的时候需要了很多坑,经过一周的点灯熬夜,终于是完美解决,写出来希望能帮到大家!!

关于Qt中编译cuda生成的cu文件

主要是配置Qt中的pro文件,贴出我百度之后亲测有效的配置

这里不同的显卡是不一样的,设置不对的话,编译应该是通过不了的

查询链接

这东西是会附加在下面的cuda.commands里使用,类似于命令行编译的时候用的指令,算法发现计算完的结果存在误差,但是不知道在linux环境如何解决,百度之,通过,如果大家需要加入其他的参数,也是在这里进行

参考链接

Qt中C++代码调用python

服务器上是通过anaconda3安装的python,自带版本是py3.7

还是先贴上我自己的配置再做说明

上面两个头文件,大家根据自己的代码去环境中找就行了,用 locate 或者干脆直接搜索都是可以的

最重要的是引用库的时候,千万别引用错了,不然编译的时候会报错

我报的错误是

https://blog.csdn.net/jiguangfan/article/details/86488573

后来发现是自己把库链接错了(好多库都是重名的,只是路径不同,所以就中招了)

编译通过之后,运行时一直报错环境变量未定义,参考了网上的很多办法,还是没有奏效,最后在代码中算是动态指定了这两个环境变量

前面两个set一定要在第三行初始化之前进行

由于算法那边开发的时候用的是windows+py3.5,但是实际的环境是linux+py3.7 应该是由于版本不同,导致了一些运行时的问题用py从文件中读取数据,然后指定的数据类型出了问题 ​