我正在编写一个CUDA应用程序,希望使用boost::program_options库获取所需的参数和用户输入。
问题在于NVCC无法处理编译boost文件
问题在于NVCC无法处理编译boost文件
any.hpp
,导致出现错误。1>C:\boost_1_47_0\boost/any.hpp(68): error C3857: 'boost::any': multiple template parameter lists are not allowed
我在网上搜索发现,这是因为NVCC 无法处理boost代码中使用的某些结构,但NVCC应该将主机代码的编译委托给C++编译器。在我的情况下,我正在使用Visual Studio 2010,因此主机代码应该传递给cl
。
由于NVCC似乎变得混乱,我甚至编写了一个简单的包装器来包装boost内容,并将其放在单独的.cpp
(而不是.cu
)文件中,但我仍然遇到了构建错误。奇怪的是,错误是在编译我的main.cu
时抛出的,而不是wrapper.cpp
,但仍由boost引起,尽管main.cu
不包括任何boost 代码。
有人知道这个问题的解决方案或解决方法吗?