C++ 找不到标准C++;使用clang+编译时的库+;和cuda sdk

C++ 找不到标准C++;使用clang+编译时的库+;和cuda sdk,c++,llvm,clang++,libstdc++,C++,Llvm,Clang++,Libstdc++,我正试图用clang++编译一个cuda程序。我正在按照中提供的说明进行操作 但是,当尝试使用以下命令发出编译时 $ clang++ -v -I $CUDA/samples/common/inc/ -L $CUDA/lib/ -I $CUDA/include/ axpy.cu -lcudart_static -lcuda -ldl -lrt -pthread -lstdc++ 我面临一条错误消息,上面说: In file included from /opt/cuda//samples/co

我正试图用clang++编译一个cuda程序。我正在按照中提供的说明进行操作

但是,当尝试使用以下命令发出编译时

$ clang++ -v  -I $CUDA/samples/common/inc/ -L $CUDA/lib/ -I $CUDA/include/ axpy.cu -lcudart_static -lcuda -ldl -lrt -pthread -lstdc++
我面临一条错误消息,上面说:

In file included from /opt/cuda//samples/common/inc/helper_cuda.h:24:
/opt/cuda//samples/common/inc/helper_string.h:18:10: fatal error: 'fstream' file not
  found
#include <fstream>
         ^
我目前正在使用archlinux,cuda安装在
/opt/cuda

更新:

通过显式地将
CPATH
设置为指向
CPATH=/usr/include/c++/5.3.0/:/usr/include/c++/5.3.0/x86\u 64-unknown-linux-gnu/:/usr/include/c++/5.3.0/x86\u 64-unknown-linux-gnu/32/:

但是,现在我面临表单的其他错误:

/usr/include/c++/5.3.0/cwchar:146:11: error: no member named 'fwide' in the global
  namespace
using ::fwide;
    ~~^

谈到CUDA,我不是专家,但您希望使用GCC的标准库(stdlib)还是LLVM(stdc++)?试图省略
-lstdc++
参数?嗨,托尔比约恩,我实际上需要为我打算使用libclang的项目的内核生成AST,因此使用了clang++和CUDA。@托尔比约恩是的,事实上我已经尝试了编译的三种变体,一种没有
-lstdc++
标志,另一种带有它,还有一个明确提到我的
c++
库位于
/usr/include/c++
使用
-I/usr/include/c++
也许你应该安装一个与cuda兼容的gcc版本,以获得一个兼容的libstdc++。@MichaelHaidl当指定标志
-D\u GNU\SOURCES
(我首先将
llvm config--cxconfig
标志添加到clang命令中,然后手动确定哪个标志可以让代码运行。)当我指定
-lpthread
标志时,我也面临着问题。由于这种方法在我看来不防水,我没有将其作为答案发布。我将尝试按照您的建议执行。谢谢!
/usr/include/c++/5.3.0/cwchar:146:11: error: no member named 'fwide' in the global
  namespace
using ::fwide;
    ~~^