[英]Compiling error with cgo: iostream:38:28: fatal error: bits/c++config.h: No such file or directory
我试图执行此页面上官方cuda nvrtc指南中的saxpy示例
它可以在终端上的g ++编译器上正常工作,并遵循构建说明:
g++ saxpy.cpp -o saxpy -I $CUDA_PATH/include -L $CUDA_PATH/lib64 -lnvrtc -lcuda -Wl,-rpath,$CUDA_PATH/lib64
现在,我正在尝试使用cgo工具以go语言执行它。 我在“ my_function”中命名了main函数,并试图用C.my_function来调用它。
这是我的cgo指令:
//PATH
#cgo LDFLAGS: -L/usr/local/cuda-7.0/lib64 -L/usr/local/cuda-7.0/lib -lcuda -lnvrtc
#cgo CPPFLAGS: -I/usr/local/cuda-7.0/include/ -I/usr/include/c++/4.8
//FILE
#include "saxpy_header.h"
#include <nvrtc.h>
#include "iostream"
#include <cuda.h>
但我收到此错误消息:
/usr/include/c++/4.8/iostream:38:28: fatal error: bits/c++config.h: No such file or directory
#include <bits/c++config.h>
所以我尝试了这个:
#include "/usr/include/x86_64-linux-gnu/c++/4.9/bits/c++config.h"
现在我得到了这个新的错误信息:
/usr/include/x86_64-linux-gnu/c++/4.9/bits/c++config.h:430:29: fatal error: bits/os_defines.h: No such file or directory
#include <bits/os_defines.h>
添加#include "/usr/include/x86_64-linux-gnu/c++/4.9/bits/os_defines.h"
我得到相同的错误...
我怎么解决这个问题?
因为我对go / cgo一无所知,所以在这里只是一个疯狂的猜测...
看来您在g ++编译器的4.8版和4.9版之间有混淆。
我会尝试相应地将cgo CPPFLAGS行更改为此:
#cgo CPPFLAGS: -I/usr/local/cuda-7.0/include/ -I/usr/include/c++/4.9
但是再次,只是猜测...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.