ubuntu+vscode调试darknet遇到的问题

重新编译遇到的错误:

注明:在使用以下解决方法前需要安装并正确配置好cuda和对应版本的关系。

可参考另一片文章:https://blog.csdn.net/mygugu/article/details/95862581

1.总是报错:找不到/usr/bin/ld     lcudnn

解决方法:

(1)这是网上给出的办法,但对于我的错误没有起到做用

(2)自己的解决办法:将cudnn安装包移到和cuda路径下,我的是在/home/zqq/download下,再解压,执行命令:

sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
 
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
 
sudo chmod a+r /usr/local/cuda/include/cudnn.h
 
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

在运行命令期间报错:

zqq@zqq-Precision-Tower-5810:~/download$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
cp: 无法通过符号链接'/usr/local/cuda/lib64/libcudnn.so' 进行操作
cp: 无法通过符号链接'/usr/local/cuda/lib64/libcudnn.so.7' 进行操作
zqq@zqq-Precision-Tower-5810:~/download$  
zqq@zqq-Precision-Tower-5810:~/download$ sudo chmod a+r /usr/local/cuda/include/cudnn.h
zqq@zqq-Precision-Tower-5810:~/download$  
zqq@zqq-Precision-Tower-5810:~/download$ sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
chmod: 无法创建符号链接'/usr/local/cuda/lib64/libcudnn.so'
chmod: 无法创建符号链接'/usr/local/cuda/lib64/libcudnn.so.7'

此时将/usr/local/cuda/lib64下面已有的libcudnn*删除:命令为sudo rm -rf /usr/local/cuda/lib64/libcudnn*

再重新执行失败的命令:

sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/

sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

成功!

此时重新在vscode的终端下:

make clean

make

就可以成功生成libdarknet.so文件

2.配置文件设置:

(1)launch.json

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/darknet",
            "args": ["detector","test","cfg/coco.data","cfg/darknet19.cfg","darknet19.weights"],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

(2)c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "/usr/include/**",//include路径,否则会提示找不到includePath
                "${workspaceFolder}/**",
                "${workspaceFolder}/include"
            ],
            "defines": [],
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "gcc-x64"
        }
    ],
    "version": 4
}

(3)编译运行:

每次修改程序都需要重新编译

make clean

make

(4)遇到includePath找不到的问题,

解决办法有两种一种是按照上面c_cpp_properties.json中显示的写:

"includePath": [
                "/usr/include/**",//include路径,否则会提示找不到includePath
                "${workspaceFolder}/**",
                "${workspaceFolder}/include"

还有一种方法是:

解决:

终端输入:

gcc -v -E -x c++ -

输出为:

使用内建 specs。
COLLECT_GCC=gcc
目标:x86_64-pc-linux-gnu
配置为:../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
线程模型:posix
gcc 版本 7.3.0 (GCC) 
COLLECT_GCC_OPTIONS='-v' '-E' '-mtune=generic' '-march=x86-64'
 /usr/local/libexec/gcc/x86_64-pc-linux-gnu/7.3.0/cc1plus -E -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE - -mtune=generic -march=x86-64
忽略不存在的目录“/usr/local/include/x86_64-linux-gnu”
忽略不存在的目录“/usr/local/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../x86_64-pc-linux-gnu/include”
#include "..." 搜索从这里开始:
#include <...> 搜索从这里开始:
 /usr/local/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0
 /usr/local/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/x86_64-pc-linux-gnu
 /usr/local/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/backward
 /usr/local/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include
 /usr/local/include
 /usr/local/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include-fixed
 /usr/include/x86_64-linux-gnu
 /usr/include
搜索列表结束。

 

复制搜索结果放到c_cpp_properties.json的include下即可,最后的结果:

{

    "configurations": [

        {

            "name": "Linux",

            "includePath": [

                "${workspaceFolder}/**",

                "/usr/local/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0",

                "/usr/local/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/x86_64-pc-linux-gnu",

                "/usr/local/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/backward",

                "/usr/local/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include",

                "/usr/local/include",

               "/usr/local/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include-fixed",

                "/usr/include/x86_64-linux-gnu",

                 "/usr/include"

            ],

            "defines": [],

            "compilerPath": "/usr/local/bin/gcc",

            "cStandard": "c11",

            "cppStandard": "c++17",

            "intelliSenseMode": "gcc-x64"

        }

    ],

    "version": 4

}

参考链接:https://www.jianshu.com/p/a2a4bc46f30e

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值