Using NSight Eclipse for Cross Compile to Jetson Xavier [message #1823128] |
Thu, 19 March 2020 20:25 |
Connor McGuirk Messages: 1 Registered: March 2020 |
Junior Member |
|
|
I am very new to Linux and Eclipse so I am looking for some help! I am struggling to properly cross compile to my Jetson Xavier (aarch64) through my Ubuntu 18.04 host PC (arm64). NVIDIA's only example on how to set it up from step 1 is from this article from 2017 (I cant add this link because I'm new but google: jetson nsight cross compile). The thing is this article doesn't talk about the Jetson Xavier, and the entire installation process on the Xavier has changed since then. I have also looked into NVIDIA's NSight Eclipse documentation (google: nsight eclipse documentation), however, I didn't find it to be useful.
Here is how I've been setting up my projects, and I will explain the issues that I run into:
The project I am working on involves capturing images from a camera. This camera comes with an API called Spinnaker from FLIR. Spinnaker API has a Linux Amd64 and Arm64 package. On my Host PC I have installed the Linux Amd64 package and am able to run all examples that come with it through terminal.
On my Xavier I have done the same, except I installed the Arm64 package.
From here I go to NSight Eclipse,
1. New C++ Project, name "Test", I select Cross GCC.
2. In "Select Configurations" I go to advanced settings and connect remotely to my Jetson Xavier.
3. In "Cross GCC Command"
I add my cross compiler prefix as: aarch64-linux-gnu-
I select my cross compiler path as: usr/bin
4. I then add my includes and libraries from the Spinnaker API to the properties of the project.
5. I copy paste an examples code for acquiring images into a new C++ source file in the project.
6. When I try to build the project on my host I get,
Building target: Test
Invoking: Cross G++ Linker
aarch64-linux-gnu-g++ -Lusr/lib -o "Test" ./Test.o -lSpinnaker -lSpinVideo -lSpinUpdate
/usr/lib/gcc-cross/aarch64-linux-gnu/7/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible /usr/lib/../lib/libSpinnaker.so when searching for -lSpinnaker
/usr/lib/gcc-cross/aarch64-linux-gnu/7/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible //usr/lib/libSpinnaker.so when searching for -lSpinnaker
/usr/lib/gcc-cross/aarch64-linux-gnu/7/../../../../aarch64-linux-gnu/bin/ld: cannot find -lSpinnaker
makefile:44: recipe for target 'Test' failed
/usr/lib/gcc-cross/aarch64-linux-gnu/7/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible /usr/lib/../lib/libSpinVideo.so when searching for -lSpinVideo
/usr/lib/gcc-cross/aarch64-linux-gnu/7/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible //usr/lib/libSpinVideo.so when searching for -lSpinVideo
/usr/lib/gcc-cross/aarch64-linux-gnu/7/../../../../aarch64-linux-gnu/bin/ld: cannot find -lSpinVideo
/usr/lib/gcc-cross/aarch64-linux-gnu/7/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible /usr/lib/../lib/libSpinUpdate.so when searching for -lSpinUpdate
/usr/lib/gcc-cross/aarch64-linux-gnu/7/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible //usr/lib/libSpinUpdate.so when searching for -lSpinUpdate
/usr/lib/gcc-cross/aarch64-linux-gnu/7/../../../../aarch64-linux-gnu/bin/ld: cannot find -lSpinUpdate
collect2: error: ld returned 1 exit status
make: *** [Test] Error 1
7. When I try to build the project on my target I get,
Building target: Test
Invoking: Cross G++ Linker
aarch64-linux-gnu-g++ -Lusr/lib -o "Test" ./Test.o -lSpinnaker -lSpinVideo -lSpinUpdate
/usr/lib/gcc-cross/aarch64-linux-gnu/7/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible /usr/lib/../lib/libSpinnaker.so when searching for -lSpinnaker
/usr/lib/gcc-cross/aarch64-linux-gnu/7/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible //usr/lib/libSpinnaker.so when searching for -lSpinnaker
/usr/lib/gcc-cross/aarch64-linux-gnu/7/../../../../aarch64-linux-gnu/bin/ld: cannot find -lSpinnaker
makefile:44: recipe for target 'Test' failed
/usr/lib/gcc-cross/aarch64-linux-gnu/7/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible /usr/lib/../lib/libSpinVideo.so when searching for -lSpinVideo
/usr/lib/gcc-cross/aarch64-linux-gnu/7/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible //usr/lib/libSpinVideo.so when searching for -lSpinVideo
/usr/lib/gcc-cross/aarch64-linux-gnu/7/../../../../aarch64-linux-gnu/bin/ld: cannot find -lSpinVideo
/usr/lib/gcc-cross/aarch64-linux-gnu/7/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible /usr/lib/../lib/libSpinUpdate.so when searching for -lSpinUpdate
/usr/lib/gcc-cross/aarch64-linux-gnu/7/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible //usr/lib/libSpinUpdate.so when searching for -lSpinUpdate
/usr/lib/gcc-cross/aarch64-linux-gnu/7/../../../../aarch64-linux-gnu/bin/ld: cannot find -lSpinUpdate
collect2: error: ld returned 1 exit status
make: *** [Test] Error 1
8. Now, when I go on my target device, the Jetson Xavier, and navigate to the project I can see that Eclipse attempted to cross compile and make the project. In my project Debug directory I see "makefile, objects.mk, sources.mk, subdir.mk, Test.d, Test.o"
What confuses me, and makes me think that I am doing something wrong with my includes/libraries, or something wrong with my cross-compiler settings is that if I run
: make clean
and then I run
: make
The project successful makes on my Jetson Xavier, and I can ./Test to successful run the example...
Is anyone able to walk me through what is going on here, and help me get this working properly?
|
|
|
|
Powered by
FUDForum. Page generated in 0.08062 seconds