嵌入式学习小组
直播中

李丽华

8年用户 1499经验值
私信 关注

如何对在Ubuntu系统上练习程序代码的GDB进行调试呢

如何对在Ubuntu系统上练习程序代码的GDB进行调试呢?有哪些调试步骤呢?

回帖(1)

李玉兰

2021-12-24 17:10:48
一. 在Ubuntu系统上练习程序代码的GDB调试。

安装GDB

GDB调试
代码

#include
void ShowRevertNum(int iNum)
{         
        while (iNum > 10)         
                {  
                        printf("%d", iNum % 10);                 
                        iNum = iNum / 10;         
                }         
                printf("%dn", iNum);
}
int main(void)
{         
        int iNum;         
        printf("Please input a number :");         
        scanf("%d", &iNum);         
        printf("After revert : ");        
        ShowRevertNum(iNum);
}


调试

输入l查看代码


二. 安装opencv-3.4.1

(一)安装
1.解压
unzip opencv-3.4.1.zip
2.进入公文包
cd opencv-3.4.1
3.安装依赖库cmake
sudo apt install amake
4.opencv配置
(1)创建编译文件夹
mkdir my_build_dir
(2)文件夹配置
cd my_build_dir
5.配置opencv环境
(1)添加路径
sudo gedit /etc/ld.so.conf.d/opencv.conf
(2)弹出的窗口中输入以下命令
sudo gedit /etc/ld.so.conf.d/opencv.conf  
(3)执行命令
sudo ldconfig  
(4)配置bash
sudo gedit /etc/bash.bashrc  
(5)弹出的窗口中输入以下命令后就完成配置
source /etc/bash.bashrc  sudo updatedb  
三. 图像处理

1.创建文件
touch test.cpp
2.编辑
sudo gedit  /test.cpp
代码如下

#include
#include
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
        CvPoint center;
        double scale = -3;


        IplImage* image = cvLoadImage("2.jpg");
        argc == 2? cvLoadImage(argv[1]) : 0;
       
        cvShowImage("Image", image);
       
       
        if (!image) return -1;         center = cvPoint(image->width / 2, image->height / 2);
        for (int i = 0;iheight;i++)
                for (int j = 0;jwidth;j++) {
                        double dx = (double)(j - center.x) / center.x;
                        double dy = (double)(i - center.y) / center.y;
                        double weight = exp((dx*dx + dy*dy)*scale);
                        uchar* ptr = &CV_IMAGE_ELEM(image, uchar, i, j * 3);
                        ptr[0] = cvRound(ptr[0] * weight);
                        ptr[1] = cvRound(ptr[1] * weight);
                        ptr[2] = cvRound(ptr[2] * weight);
                }


        Mat src;Mat dst;
        src = cvarrToMat(image);
        cv::imwrite("test.png", src);


    cvNamedWindow("test",1);          imshow("test", src);
         cvWaitKey();
         return 0;
}
举报

更多回帖

发帖
×
20
完善资料,
赚取积分