C++ 找不到标准C++;使用clang+编译时的库+;和cuda sdk
我正试图用clang++编译一个cuda程序。我正在按照中提供的说明进行操作 但是,当尝试使用以下命令发出编译时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++ -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;
~~^