Jeston TX2学习笔记(4)——使用Nsight Eclipse Edition对TX2进行交叉编译

在使用TX2的过程中,我想要对一些代码进行调试,但是在Tx2上使用gdb进行调试,可视化效果比较差,于是想要使用嵌入式系统中的交叉编译方式。在主机上对Tx2进行刷机后,会自动在主机上安装Nsight软件。用这个软件可以对Tx2进行交叉编译,也可以在本地编译(在运行cuda相关代码的时候,要求本地主机上也有GPU)但是在这个过程中遇到了一些问题,下面将介绍如何使用在主机上写一个简单的C++程序,交叉编译到TX2开发板上。

一、交叉编译一个刷机后自带的源码

https://blog.csdn.net/lg1259156776/article/details/77227238

二、一个简单的C++程序进行交叉编译

工程的创建过程和一中基本一致。
  1. file->new->cuda C/C++ project
  2. 输入工程名称,在下面的可选框中选择Empty Project,然后选择next.
    这里写图片描述
  3. 继续next
    这里写图片描述
    4.选择远程连接,点击manage,进入选择一中已经创建好的远程地址,点击finish。
    这里写图片描述
    5.这里local system显示灰色,表示主机不支持cuda指令,不能够在主机上编译,这里可以X掉,也可以不X掉。project path是交叉编译后在Tx2上的生成目录。Toolkit是支持交叉编译的工具,按照图中路径选择就可以了。然后选择finish即可。
    这里写图片描述
    6.这时候新建一个mycudatest.cpp文件,注意不要新建一个文件夹,然后在文件夹下面建立这个mycudatest.cpp文件。
    这里写图片描述
    这里写图片描述
    7.写一个简单的C++程序作为测试
#include<iostream>

using namespace std;

int main()
{
    cout<<"c++ test cuda"<<endl;
    return -1;
}

8.然后点击上方锤子一样的东西(表示build dubug ),会显示出local和之前创建的远程连接的选项,这是因为第五步中没有把system local 选项X掉。点击下面的nvida->dubug,就可以对程序进行build和dubug了。然后就可以在TX2的文件夹中找到产生的相关文件了。之后可以在主机设置断点,dubug,或者运行。或者在Tx2中直接运行生成的可执行文件。
这里写图片描述

重要补充:

  1. 很多时候没有build,就直接选择运行或者调试,这个时候会出现
    launch failed.Binary not found.
  2. 有时候构建了但是没有成功,这个时候在左侧的工程名称mycudaproject以及工程选项下面的dubug的文件夹标志中会出现X号,这个时候要检查一下代码是否有错误,或者是程序找不到相应的库和头文件。建议直接在工程下面建立.cpp文件,以免找不到头文件和库。
  3. 还有一点需要注意的是在编辑好.cpp文件后一定要保存后在按dubug。

三、一个简单的opencv程序交叉编译

这个例子主要是为了表示如何给程序添加依赖库和依赖的头文件。这里就不建立工程了,直接使用二中的例子,将mycudatest.cpp中的程序替换成下面的程序。这里使用的opencv是刷机完成后自带的opencv4Tegra。相关内容可以看学习笔记(3)。

#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
    Mat srcimg=imread("1.png");
    imshow("dispaly",srcimg);
    waitKey(0);
}

然后进行build(按锤子标志的按钮),发现会报错,这里需要添加opencv需要的库和头文件。需要包含的内容是(见我博客中的学习笔记(3)):
头文件 /usr/local/include
库文件 /usr/local/lib
库名称 opencv_core和opencv_highgui

添加方式为
1.菜单栏project->properties->C/C++ General->code Analysis->Path and Symbols.
2.分别在右侧的inlcudes选项添加上述头文件路径,在LIbraries中添加库名称,在library path中添加库文件的路径。
这里写图片描述
3.点击Ok后,build,发现没有错误,这个时候在TX2中重新生成了相关文件。
在TX2生成的Debug文件夹中放入一个1.png文件夹,运行就可以了。

这里我一个问题是该程序无法在主机上运行或者在主机上调试这个程序,这里先记录下来,希望知道的朋友能够帮助解答。

猜你喜欢

转载自blog.csdn.net/weixin_40100431/article/details/80472756