繁体   English   中英

cgo编译错误:iostream:38:28:致命错误:bits / c ++ config.h:没有此类文件或目录

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM