我想要一个.cuh
文件,我也可以在其中声明内核函数和主机函数。这些功能的实现将在.cu
文件中进行。实施将包括Thrust
库的使用。
在main.cpp
文件中,我想使用.cu
文件内的实现。所以假设我们有这样的事情:
myFunctions.cuh
#include <thrust/sort.h>
#include <thrust/device_vector.h>
#include <thrust/remove.h>
#include <thrust/host_vector.h>
#include <iostream>
__host__ void show();
myFunctions.cu
#include "myFunctions.cuh"
__host__ void show(){
std::cout<<"test"<<std::endl;
}
main.cpp
#include "myFunctions.cuh"
int main(void){
show();
return 0;
}
如果我这样做编译:
nvcc myFunctions.cu main.cpp -O3
然后通过键入运行可执行文件./a.out
将test
打印文本。
但是,如果我决定-std=c++0x
使用以下命令包含:
nvcc myFunctions.cu main.cpp -O3 --compiler-options "-std=c++0x"
我收到很多错误,其中一些如下:
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++config.h(159): error: identifier "nullptr" is undefined
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++config.h(159): error: expected a ";"
/usr/include/c++/4.6/bits/exception_ptr.h(93): error: incomplete type is not allowed
/usr/include/c++/4.6/bits/exception_ptr.h(93): error: expected a ";"
/usr/include/c++/4.6/bits/exception_ptr.h(112): error: expected a ")"
/usr/include/c++/4.6/bits/exception_ptr.h(114): error: expected a ">"
/usr/include/c++/4.6/bits/exception_ptr.h(114): error: identifier "__o" is undefined
这些错误是什么意思,我该如何避免它们?
先感谢您