Ubuntu 16.04,Nvidia 工具包 8.0 RC,暗网编译错误:预期";"
Ubuntu 16.04, Nvidia toolkit 8.0 RC, darknet compilation error: expected a ";"
我正在用GPU支持Ubuntu 16.04上编译Darknet。Nvidial toolkit version 8.0 RC
和我卡住了错误:
nvcc --gpu-architecture=compute_52 --gpu-code=compute_52 -DOPENCV `pkg-config --cflags opencv` -DGPU -I/usr/local/cuda/include/ --compiler-options "-Wall -Wfatal-errors -Ofast -DOPENCV -DGPU" -c ./src/convolutional_kernels.cu -o obj/convolutional_kernels.o
/usr/local/cuda/include/surface_functions.h(134): error: expected a ";"
/usr/local/cuda/include/surface_functions.h(135): error: expected a ";"
/usr/local/cuda/include/surface_functions.h(136): error: expected a ";"
/usr/local/cuda/include/surface_functions.h中的错误行如下所示:
template<> __device__ __cudart_builtin__ char surf1Dread(surface<void, cudaSurfaceType1D> surf, int x, enum cudaSurfaceBoundaryMode mode) asm("__surf1Dread_char") ;
有什么建议吗
所以当您的环境使用不同版本的nvcc二进制文件并且cuda 在编译过程中包含文件时,就会发生这种情况。
Darknet使用/usr/local/cuda/include/作为其包含路径但是在执行nvcc二进制文件时依赖于你的PATH。它可能属于系统中的另一个cuda安装。
为了避免这种情况,强制shell在/usr/local/cuda/bin/nvcc中搜索nvcc。
这可以通过破解Makefile中的nvcc路径来实现:
学校网站NVCC = 与 NVCC =/usr/地方/cuda/bin/NVCC
或通过修改make命令的PATH变量(更简单且与会话相关)
PATH=/usr/local/cuda/bin:$PATH make
如果您安装了几个版本的CUDA并且需要它们(像我一样),我建议在您的(BASH) RC中添加以下内容:
# DARKNET
export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
来源的RC('。~/.bashrc')和编译工作!
这个错误是由于nvcc 7.5版本
看起来Cuda工具包8.0 RC安装通过deb文件没有nvcc版本8我已经通过cuda_8.0.27_linux.run installed重新安装了cuda,它现在为我工作了
相关文章:
- std::is_base_of表示ctor编译错误
- Qt5:使用QCommandLineParser类时出现奇怪的编译错误
- 如何修复sfml c++代码编译错误
- 使用 MATLAB 编码器生成C++代码:编译错误"undefined reference to `rgb2gray_tbb_real64'"
- 使用外部SDK工具链文件在VisualStudio上生成项目编译错误
- vscode下的Arduino代码出现意外编译错误
- 第三方 API 中的编译错误 - Visual Studio
- std::cout输出int时出现编译错误
- 奇怪的代码抛出编译错误模板< J,int aSize=10> C2143:语法错误:在"<"之前缺少";"
- 提升图广度优先搜索前置编译错误
- C++ 中的编译错误:未定义对"主"的引用 collect2:错误:ld 返回 1 个退出状态
- 使用带有 ref 参数的成员函数创建线程时出现编译错误
- 我在C++中遇到了这个奇怪的编译错误
- 在C++中使用 Catch 测试框架编译错误"error: expected ';' at end of declaration list"
- 使用 std::enable_if 限制派生类的模板参数时出现编译错误
- 现代OpenGL和GLEW Libraray的编译错误
- C++ 编译错误:意外的类型名称"字符串":预期的表达式
- C ++程序编译错误,找不到/访问文件
- 使用直接大括号初始化时,C++ 编译错误"声明末尾的预期";"
- 为什么传递非静态成员函数会导致编译错误?