0
我有一個包含cuda文件的Visual Studio C++項目(包含VS 2010和insight 2)。下面的代碼無法在.cu中打開包含文件
Hello.h:
#pragma once
#pragma warning(push)
#pragma warning(disable:4996)
#include "thrust\device_vector.h"
#pragma warning(pop)
class Hello
{
public:
Hello(const thrust::host_vector<unsigned long>& data);
unsigned long Sum();
unsigned long Max();
private:
thrust::device_vector<unsigned long> m_data;
}
Hello.cu:
#include "thrust\host_vector.h"
#include "thrust\device_vector.h"
#include "thrust\extrema.h"
#include "Hello.h"
using namespace ::thrust;
Hello::Hello(const thrust::host_vector<unsigned long>& data)
: m_data(data.cbegin(), data.cend())
{
}
unsigned long
Hello::Sum()
{
return(reduce(m_data.cbegin(), m_data.cend(),
(unsigned long)0,
plus<unsigned long>()));
}
unsigned long
Hello::Max()
{
return(*max_element(m_data.cbegin(), m_data.cend()));
}
最後的main.cpp:
#ifdef _WIN32
#define WINDOWS _LEAN_AND_MEAN
#define NOMINMAX
#include <Windows.h>
#endif
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <ppl.h> //parallel patterns library
#include "Hello.h"
using namespace ::Concurrency;
int
main(int argc, char** argv)
{
printf("Generating data...\n");
thrust::host_vector<unsigned long> host_data(100000);
thrust::generate(host_data.begin(), host_data.end(), rand);
printf("generated %d numbers\n", host_data.size());
parallel_invoke(
[host_data]()
{
printf("\nRunning host code...\n");
unsigned long host_result = thrust::reduce(host_data.cbegin(),
host_data.cend(), 0, thrust::plus<unsigned long>());
printf("The sum is %d\n", host_result);
host_result = *thrust::max_element(host_data.cbegin(),
host_data.cend(), thrust::less<unsigned long>());
printf("The max is %d\n", host_result);
},
[host_data]()
{
printf("\nCopying data to device...\n");
Hello hello(host_data);
printf("\nRunning CUDA device code...\n");
unsigned long device_result = hello.Sum();
printf("The sum is %d\n", device_result);
printf("\nRunning CUDA device code...\n");
device_result = hello.Max();
printf("The max is %d\n", device_result);
}
);
return(0);
}
代碼來自:here
M Ÿ問題是,當我生成項目,它給了我這個錯誤:
Hello.cu(5): fatal error C1083: Cannot open include file: 'Hello.h': No such file or directory
然而,當我用鼠標右鍵點擊「包括‘Hello.h’」找到文件就好了。
我已經添加了我的.h文件夾在項目的其他include目錄中。所以我真的不知道爲什麼它無法打開文件。
我不知道這是否是更大的配置問題,只是也許一個C++件事我忘了...
非常感謝,正是我所需要的 – nevero