Running Ebus SDK on jetson nano

I am currently making my bachelor thesis where i am working on the jetson nano with a jai GO-5000C-PGE camera. I have installed the specific sdk for the jetson nano (https://www.jai.com/support-software/jetson-ubuntu/). I have followed the instructions and am able to open the eBUSPlayer and connect to the camera. The problem is that i am not able to run any of the samples from the sdk (the samples are written in C++). I generated a c_cpp_properties.json where i have included the include folder. I have even tried manually including all the .h files and ended up getting a whole other error where it could not find the function declared in the header. The function was written inside the if: #ifdef UNIX . I have tried using both GCC and clang to compile the project.

Have anyone here succesfully run the ebus SDK samples on a nvidia controller?

Best regards.

Hi @Embeddediot ,

you are in a great forum here that can help you with most of your programming questions regarding a whole variety of hardware and industrial cameras used with Common Vision Blox.

Common Vision Blox (CVB) is a vision SDK that allows you to get images from a bunch of industrial cameras from different manufacturers using one and the same code.
To get started you might want to take a look at the following page:

https://help.commonvisionblox.com/NextGen/14.0/md_scripts_main__a_p_i__overview.html

or just

https://help.commonvisionblox.com

if you need to get started from the very bottom.

Thus, questions regarding any SDK other than CVB should be asked in forums that have the desired SDK as their main topic.

If you are done with installing CVB and configuring the hardware, you will find a getting started here for our wrappers (Python, C# and C++) leaving you with all their pros and cons and personal preferences.

Cheers
Chris

2 Likes

Hi! your links aren’t working, can you please share an alternate?

Hello @sanidhya
the site was temporarily down and is now available again.

Cheers,
Tim

hi @TStadler
Thank you.

I built the ebus_sdk again as per the steps in the user manual, I wrote a program to convert PvBuffer to Cv::Mat.

Following some references on the web, I wrote a cmake file:

cmake_minimum_required(VERSION 3.15)
project(STREEEAM)
set(CMAKE_CXX_STANDARD 17)
find_package(OpenCV REQUIRED)

add_executable(main main.cpp)

include_directories( ${OpenCV_INCLUDE_DIRS} )
include_directories("/opt/pleora/ebus_sdk/linux-aarch64-arm/include")

link_directories("/opt/pleora/ebus_sdk/linux-aarch64-arm/lib")

target_link_libraries(main "/opt/pleora/ebus_sdk/linux-aarch64-arm/lib")
target_link_libraries(main ${OpenCV_LIBS})

My script is using the samples template for ‘PvStreamSample’ as provided by ebus_SDK, with some modifications.

I am getting the following error during my make

orion-3@orion3-desktop:~/streeeam$ make
Scanning dependencies of target main
[ 50%] Building CXX object CMakeFiles/main.dir/main.cpp.o
[100%] Linking CXX executable main
/usr/bin/ld: CMakeFiles/main.dir/main.cpp.o: in function `main':
main.cpp:(.text+0xc0): undefined reference to `PvString::PvString()'
/usr/bin/ld: main.cpp:(.text+0x174): undefined reference to `PvStream::Close()'
/usr/bin/ld: main.cpp:(.text+0x17c): undefined reference to `PvResult::~PvResult()'
/usr/bin/ld: main.cpp:(.text+0x184): undefined reference to `PvStream::Free(PvStream*)'
/usr/bin/ld: main.cpp:(.text+0x1bc): undefined reference to `PvDevice::Disconnect()'
/usr/bin/ld: main.cpp:(.text+0x1c4): undefined reference to `PvResult::~PvResult()'
/usr/bin/ld: main.cpp:(.text+0x1cc): undefined reference to `PvDevice::Free(PvDevice*)'
/usr/bin/ld: main.cpp:(.text+0x220): undefined reference to `PvString::~PvString()'
/usr/bin/ld: CMakeFiles/main.dir/main.cpp.o: in function `ConnectToDevice(PvString const&)':
main.cpp:(.text+0x2c8): undefined reference to `PvResult::PvResult()'
/usr/bin/ld: main.cpp:(.text+0x300): undefined reference to `PvDevice::CreateAndConnect(PvString const&, PvResult*)'
/usr/bin/ld: main.cpp:(.text+0x338): undefined reference to `PvResult::GetCodeString() const'
/usr/bin/ld: main.cpp:(.text+0x340): undefined reference to `PvString::GetAscii() const'
/usr/bin/ld: main.cpp:(.text+0x374): undefined reference to `PvResult::GetDescription() const'
/usr/bin/ld: main.cpp:(.text+0x37c): undefined reference to `PvString::GetAscii() const'
/usr/bin/ld: main.cpp:(.text+0x3c0): undefined reference to `PvString::~PvString()'
/usr/bin/ld: main.cpp:(.text+0x3cc): undefined reference to `PvResult::~PvResult()'
/usr/bin/ld: main.cpp:(.text+0x40c): undefined reference to `PvString::~PvString()'
/usr/bin/ld: main.cpp:(.text+0x41c): undefined reference to `PvResult::~PvResult()'
/usr/bin/ld: CMakeFiles/main.dir/main.cpp.o: in function `OpenStream(PvString const&)':
main.cpp:(.text+0x464): undefined reference to `PvResult::PvResult()'
/usr/bin/ld: main.cpp:(.text+0x49c): undefined reference to `PvStream::CreateAndOpen(PvString const&, PvResult*)'
/usr/bin/ld: main.cpp:(.text+0x4d4): undefined reference to `PvResult::GetCodeString() const'
/usr/bin/ld: main.cpp:(.text+0x4dc): undefined reference to `PvString::GetAscii() const'
/usr/bin/ld: main.cpp:(.text+0x510): undefined reference to `PvResult::GetDescription() const'
/usr/bin/ld: main.cpp:(.text+0x518): undefined reference to `PvString::GetAscii() const'
/usr/bin/ld: main.cpp:(.text+0x554): undefined reference to `PvString::~PvString()'
/usr/bin/ld: main.cpp:(.text+0x568): undefined reference to `PvResult::~PvResult()'
/usr/bin/ld: main.cpp:(.text+0x598): undefined reference to `PvString::~PvString()'
/usr/bin/ld: main.cpp:(.text+0x5b8): undefined reference to `PvResult::~PvResult()'
/usr/bin/ld: CMakeFiles/main.dir/main.cpp.o: in function `ConfigureStream(PvDevice*, PvStream*)':
main.cpp:(.text+0x610): undefined reference to `typeinfo for PvDeviceGEV'
/usr/bin/ld: main.cpp:(.text+0x614): undefined reference to `typeinfo for PvDeviceGEV'
/usr/bin/ld: main.cpp:(.text+0x61c): undefined reference to `typeinfo for PvDevice'
/usr/bin/ld: main.cpp:(.text+0x658): undefined reference to `PvDeviceGEV::NegotiatePacketSize(unsigned int, unsigned int)'
/usr/bin/ld: main.cpp:(.text+0x660): undefined reference to `PvResult::~PvResult()'
/usr/bin/ld: main.cpp:(.text+0x670): undefined reference to `PvStreamGEV::GetLocalIPAddress() const'
/usr/bin/ld: main.cpp:(.text+0x678): undefined reference to `PvStreamGEV::GetLocalPort() const'
/usr/bin/ld: main.cpp:(.text+0x698): undefined reference to `PvDeviceGEV::SetStreamDestination(PvString const&, unsigned short, unsigned int)'
/usr/bin/ld: main.cpp:(.text+0x6a0): undefined reference to `PvResult::~PvResult()'
/usr/bin/ld: main.cpp:(.text+0x6a8): undefined reference to `PvString::~PvString()'
/usr/bin/ld: main.cpp:(.text+0x6b0): undefined reference to `PvDevice::GetParameters()'
/usr/bin/ld: main.cpp:(.text+0x6c8): undefined reference to `PvString::PvString(char const*)'
/usr/bin/ld: main.cpp:(.text+0x6d8): undefined reference to `PvGenParameterArray::Get(PvString const&)'
/usr/bin/ld: main.cpp:(.text+0x6ec): undefined reference to `typeinfo for PvGenEnum'
/usr/bin/ld: main.cpp:(.text+0x6f4): undefined reference to `typeinfo for PvGenParameter'
/usr/bin/ld: main.cpp:(.text+0x70c): undefined reference to `PvString::~PvString()'
/usr/bin/ld: main.cpp:(.text+0x72c): undefined reference to `PvString::PvString(char const*)'
/usr/bin/ld: main.cpp:(.text+0x744): undefined reference to `PvGenEnum::SetValue(PvString const&)'
/usr/bin/ld: main.cpp:(.text+0x74c): undefined reference to `PvResult::~PvResult()'
/usr/bin/ld: main.cpp:(.text+0x78c): undefined reference to `PvString::~PvString()'
/usr/bin/ld: CMakeFiles/main.dir/main.cpp.o: in function `CreateStreamBuffers(PvDevice*, PvStream*, std::__cxx11::list<PvBuffer*, std::allocator<PvBuffer*> >*)':
main.cpp:(.text+0x820): undefined reference to `PvDevice::GetPayloadSize()'
/usr/bin/ld: main.cpp:(.text+0x82c): undefined reference to `PvStream::GetQueuedBufferMaximum() const'
/usr/bin/ld: main.cpp:(.text+0x83c): undefined reference to `PvStream::GetQueuedBufferMaximum() const'
/usr/bin/ld: main.cpp:(.text+0x874): undefined reference to `PvBuffer::PvBuffer(PvPayloadType)'
/usr/bin/ld: main.cpp:(.text+0x88c): undefined reference to `PvBuffer::Alloc(unsigned int)'
/usr/bin/ld: main.cpp:(.text+0x894): undefined reference to `PvResult::~PvResult()'
/usr/bin/ld: main.cpp:(.text+0x904): undefined reference to `PvStream::QueueBuffer(PvBuffer*)'
/usr/bin/ld: main.cpp:(.text+0x90c): undefined reference to `PvResult::~PvResult()'
/usr/bin/ld: CMakeFiles/main.dir/main.cpp.o: in function `AcquireImages(PvDevice*, PvStream*)':
main.cpp:(.text+0x998): undefined reference to `PvDevice::GetParameters()'
/usr/bin/ld: main.cpp:(.text+0x9b0): undefined reference to `PvString::PvString(char const*)'
/usr/bin/ld: main.cpp:(.text+0x9d0): undefined reference to `PvGenParameterArray::SetEnumValue(PvString const&, long)'
/usr/bin/ld: main.cpp:(.text+0x9d8): undefined reference to `PvResult::~PvResult()'
/usr/bin/ld: main.cpp:(.text+0x9e0): undefined reference to `PvString::~PvString()'
/usr/bin/ld: main.cpp:(.text+0x9f4): undefined reference to `PvString::PvString(char const*)'
/usr/bin/ld: main.cpp:(.text+0xa04): undefined reference to `PvGenParameterArray::Get(PvString const&)'
/usr/bin/ld: main.cpp:(.text+0xa14): undefined reference to `typeinfo for PvGenCommand'
/usr/bin/ld: main.cpp:(.text+0xa20): undefined reference to `typeinfo for PvGenParameter'
/usr/bin/ld: main.cpp:(.text+0xa38): undefined reference to `PvString::~PvString()'
/usr/bin/ld: main.cpp:(.text+0xa4c): undefined reference to `PvString::PvString(char const*)'
/usr/bin/ld: main.cpp:(.text+0xa5c): undefined reference to `PvGenParameterArray::Get(PvString const&)'
/usr/bin/ld: main.cpp:(.text+0xa6c): undefined reference to `typeinfo for PvGenCommand'
/usr/bin/ld: main.cpp:(.text+0xa78): undefined reference to `typeinfo for PvGenParameter'
/usr/bin/ld: main.cpp:(.text+0xa90): undefined reference to `PvString::~PvString()'
/usr/bin/ld: main.cpp:(.text+0xa98): undefined reference to `PvStream::GetParameters()'
/usr/bin/ld: main.cpp:(.text+0xab0): undefined reference to `PvString::PvString(char const*)'
/usr/bin/ld: main.cpp:(.text+0xacc): undefined reference to `PvGenParameterArray::SetEnumValue(PvString const&, long)'
/usr/bin/ld: main.cpp:(.text+0xad4): undefined reference to `PvResult::~PvResult()'
/usr/bin/ld: main.cpp:(.text+0xadc): undefined reference to `PvString::~PvString()'
/usr/bin/ld: main.cpp:(.text+0xaf0): undefined reference to `PvString::PvString(char const*)'
/usr/bin/ld: main.cpp:(.text+0xb00): undefined reference to `PvGenParameterArray::Get(PvString const&)'
/usr/bin/ld: main.cpp:(.text+0xb10): undefined reference to `typeinfo for PvGenFloat'
/usr/bin/ld: main.cpp:(.text+0xb1c): undefined reference to `typeinfo for PvGenParameter'
/usr/bin/ld: main.cpp:(.text+0xb34): undefined reference to `PvString::~PvString()'
/usr/bin/ld: main.cpp:(.text+0xb48): undefined reference to `PvString::PvString(char const*)'
/usr/bin/ld: main.cpp:(.text+0xb58): undefined reference to `PvGenParameterArray::Get(PvString const&)'
/usr/bin/ld: main.cpp:(.text+0xb68): undefined reference to `typeinfo for PvGenFloat'
/usr/bin/ld: main.cpp:(.text+0xb74): undefined reference to `typeinfo for PvGenParameter'
/usr/bin/ld: main.cpp:(.text+0xb8c): undefined reference to `PvString::~PvString()'
/usr/bin/ld: main.cpp:(.text+0xbc8): undefined reference to `PvDevice::StreamEnable(unsigned int)'
/usr/bin/ld: main.cpp:(.text+0xbd0): undefined reference to `PvResult::~PvResult()'
/usr/bin/ld: main.cpp:(.text+0xbe0): undefined reference to `PvGenCommand::Execute()'
/usr/bin/ld: main.cpp:(.text+0xbe8): undefined reference to `PvResult::~PvResult()'
/usr/bin/ld: main.cpp:(.text+0xc70): undefined reference to `PvResult::PvResult()'
/usr/bin/ld: main.cpp:(.text+0xc94): undefined reference to `PvStream::RetrieveBuffer(PvBuffer**, PvResult*, unsigned int)'
/usr/bin/ld: main.cpp:(.text+0xc9c): undefined reference to `PvResult::IsOK() const'
/usr/bin/ld: main.cpp:(.text+0xcb0): undefined reference to `PvResult::IsOK() const'
/usr/bin/ld: main.cpp:(.text+0xcd4): undefined reference to `PvGenFloat::GetValue(double&) const'
/usr/bin/ld: main.cpp:(.text+0xcdc): undefined reference to `PvResult::~PvResult()'
/usr/bin/ld: main.cpp:(.text+0xcf4): undefined reference to `PvGenFloat::GetValue(double&) const'
/usr/bin/ld: main.cpp:(.text+0xcfc): undefined reference to `PvResult::~PvResult()'
/usr/bin/ld: main.cpp:(.text+0xd14): undefined reference to `PvBuffer::GetPayloadType() const'
/usr/bin/ld: main.cpp:(.text+0xd2c): undefined reference to `PvBuffer::GetImage()'
/usr/bin/ld: main.cpp:(.text+0xfc0): undefined reference to `PvResult::GetCodeString() const'
/usr/bin/ld: main.cpp:(.text+0xfc8): undefined reference to `PvString::GetAscii() const'
/usr/bin/ld: main.cpp:(.text+0xff0): undefined reference to `PvString::~PvString()'
/usr/bin/ld: main.cpp:(.text+0x1008): undefined reference to `PvStream::QueueBuffer(PvBuffer*)'
/usr/bin/ld: main.cpp:(.text+0x1010): undefined reference to `PvResult::~PvResult()'
/usr/bin/ld: main.cpp:(.text+0x105c): undefined reference to `PvResult::GetCodeString() const'
/usr/bin/ld: main.cpp:(.text+0x1064): undefined reference to `PvString::GetAscii() const'
/usr/bin/ld: main.cpp:(.text+0x108c): undefined reference to `PvString::~PvString()'
/usr/bin/ld: main.cpp:(.text+0x10d8): undefined reference to `PvResult::~PvResult()'
/usr/bin/ld: main.cpp:(.text+0x1148): undefined reference to `PvGenCommand::Execute()'
/usr/bin/ld: main.cpp:(.text+0x1150): undefined reference to `PvResult::~PvResult()'
/usr/bin/ld: main.cpp:(.text+0x118c): undefined reference to `PvDevice::StreamDisable(unsigned int)'
/usr/bin/ld: main.cpp:(.text+0x1194): undefined reference to `PvResult::~PvResult()'
/usr/bin/ld: main.cpp:(.text+0x11cc): undefined reference to `PvStream::AbortQueuedBuffers()'
/usr/bin/ld: main.cpp:(.text+0x11d4): undefined reference to `PvResult::~PvResult()'
/usr/bin/ld: main.cpp:(.text+0x11dc): undefined reference to `PvStream::GetQueuedBufferCount() const'
/usr/bin/ld: main.cpp:(.text+0x11fc): undefined reference to `PvResult::PvResult()'
/usr/bin/ld: main.cpp:(.text+0x1220): undefined reference to `PvStream::RetrieveBuffer(PvBuffer**, PvResult*, unsigned int)'
/usr/bin/ld: main.cpp:(.text+0x1228): undefined reference to `PvResult::~PvResult()'
/usr/bin/ld: main.cpp:(.text+0x1230): undefined reference to `PvResult::~PvResult()'
/usr/bin/ld: main.cpp:(.text+0x1290): undefined reference to `PvString::~PvString()'
/usr/bin/ld: CMakeFiles/main.dir/main.cpp.o:main.cpp:(.text+0x12a4): more undefined references to `PvString::~PvString()' follow
/usr/bin/ld: CMakeFiles/main.dir/main.cpp.o: in function `AcquireImages(PvDevice*, PvStream*)':
main.cpp:(.text+0x1370): undefined reference to `PvResult::~PvResult()'
/usr/bin/ld: main.cpp:(.text+0x1380): undefined reference to `PvResult::~PvResult()'
/usr/bin/ld: main.cpp:(.text+0x1394): undefined reference to `PvResult::~PvResult()'
/usr/bin/ld: CMakeFiles/main.dir/main.cpp.o: in function `PvSelectDevice(PvString*, PvDeviceInfoType*)':
main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x30): undefined reference to `PvResult::PvResult()'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x3c): undefined reference to `PvSystem::PvSystem()'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0xa8): undefined reference to `PvSystem::Find()'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0xb0): undefined reference to `PvResult::~PvResult()'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0xc4): undefined reference to `PvSystem::GetInterfaceCount() const'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0xec): undefined reference to `PvSystem::GetInterface(unsigned int) const'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x124): undefined reference to `PvInterface::GetDisplayID() const'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x12c): undefined reference to `PvString::GetAscii() const'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x154): undefined reference to `PvString::~PvString()'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x160): undefined reference to `PvInterface::GetDeviceCount() const'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x188): undefined reference to `PvInterface::GetDeviceInfo(unsigned int) const'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x210): undefined reference to `PvDeviceInfo::GetDisplayID() const'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x218): undefined reference to `PvString::GetAscii() const'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x240): undefined reference to `PvString::~PvString()'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x474): undefined reference to `PvDeviceInfo::IsConfigurationValid() const'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x4a4): undefined reference to `PvDeviceInfo::GetConnectionID() const'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x4b4): undefined reference to `PvString::operator=(PvString const&)'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x4bc): undefined reference to `PvString::~PvString()'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x4d0): undefined reference to `PvDeviceInfo::GetType() const'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x628): undefined reference to `typeinfo for PvDeviceInfoGEV'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x630): undefined reference to `typeinfo for PvDeviceInfo'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x65c): undefined reference to `PvDeviceInfoGEV::GetMACAddress() const'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x664): undefined reference to `PvString::GetAscii() const'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x670): undefined reference to `PvString::PvString(char const*)'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x694): undefined reference to `PvDeviceInfoGEV::GetSubnetMask() const'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x69c): undefined reference to `PvString::GetAscii() const'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x6a8): undefined reference to `PvString::PvString(char const*)'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x6b8): undefined reference to `PvDeviceInfoGEV::GetDefaultGateway() const'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x6c0): undefined reference to `PvString::GetAscii() const'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x6cc): undefined reference to `PvString::PvString(char const*)'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x6e8): undefined reference to `PvDeviceGEV::SetIPConfiguration(PvString const&, PvString const&, PvString const&, PvString const&)'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x6f4): undefined reference to `PvResult::operator=(PvResult const&)'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x6fc): undefined reference to `PvResult::~PvResult()'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x704): undefined reference to `PvString::~PvString()'
/usr/bin/ld: CMakeFiles/main.dir/main.cpp.o:main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x72c): more undefined references to `PvString::~PvString()' follow
/usr/bin/ld: CMakeFiles/main.dir/main.cpp.o: in function `PvSelectDevice(PvString*, PvDeviceInfoType*)':
main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x73c): undefined reference to `PvResult::IsOK() const'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x7e4): undefined reference to `PvSystem::Find()'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x7ec): undefined reference to `PvResult::~PvResult()'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x800): undefined reference to `PvSystem::GetInterfaceCount() const'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x828): undefined reference to `PvSystem::GetInterface(unsigned int) const'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x838): undefined reference to `PvInterface::GetDeviceCount() const'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x860): undefined reference to `PvInterface::GetDeviceInfo(unsigned int) const'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x864): undefined reference to `PvDeviceInfo::GetType() const'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x884): undefined reference to `PvInterface::GetDeviceInfo(unsigned int) const'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x894): undefined reference to `typeinfo for PvDeviceInfoGEV'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x89c): undefined reference to `typeinfo for PvDeviceInfo'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x8cc): undefined reference to `PvDeviceInfoGEV::GetIPAddress() const'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x8d4): undefined reference to `PvString::GetAscii() const'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x8ec): undefined reference to `PvString::~PvString()'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x918): undefined reference to `PvDeviceInfo::GetConnectionID() const'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x928): undefined reference to `PvString::operator=(PvString const&)'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x930): undefined reference to `PvString::~PvString()'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0x944): undefined reference to `PvDeviceInfo::GetType() const'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0xaf0): undefined reference to `PvSystem::~PvSystem()'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0xaf8): undefined reference to `PvResult::~PvResult()'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0xb58): undefined reference to `PvString::~PvString()'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0xb68): undefined reference to `PvResult::~PvResult()'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0xbb8): undefined reference to `PvString::~PvString()'
/usr/bin/ld: CMakeFiles/main.dir/main.cpp.o:main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0xbc8): more undefined references to `PvString::~PvString()' follow
/usr/bin/ld: CMakeFiles/main.dir/main.cpp.o: in function `PvSelectDevice(PvString*, PvDeviceInfoType*)':
main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0xc38): undefined reference to `PvSystem::~PvSystem()'
/usr/bin/ld: main.cpp:(.text._Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType[_Z14PvSelectDeviceP8PvStringP16PvDeviceInfoType]+0xc48): undefined reference to `PvResult::~PvResult()'
/usr/bin/ld: CMakeFiles/main.dir/main.cpp.o: in function `PvSampleTransmitterConfig::SetDefaults()':
main.cpp:(.text._ZN25PvSampleTransmitterConfig11SetDefaultsEv[_ZN25PvSampleTransmitterConfig11SetDefaultsEv]+0x28): undefined reference to `PvSystem::PvSystem()'
/usr/bin/ld: main.cpp:(.text._ZN25PvSampleTransmitterConfig11SetDefaultsEv[_ZN25PvSampleTransmitterConfig11SetDefaultsEv]+0x38): undefined reference to `PvSystem::GetInterfaceCount() const'
/usr/bin/ld: main.cpp:(.text._ZN25PvSampleTransmitterConfig11SetDefaultsEv[_ZN25PvSampleTransmitterConfig11SetDefaultsEv]+0x7c): undefined reference to `PvSystem::GetInterface(unsigned int) const'
/usr/bin/ld: main.cpp:(.text._ZN25PvSampleTransmitterConfig11SetDefaultsEv[_ZN25PvSampleTransmitterConfig11SetDefaultsEv]+0x8c): undefined reference to `typeinfo for PvNetworkAdapter'
/usr/bin/ld: main.cpp:(.text._ZN25PvSampleTransmitterConfig11SetDefaultsEv[_ZN25PvSampleTransmitterConfig11SetDefaultsEv]+0x90): undefined reference to `typeinfo for PvNetworkAdapter'
/usr/bin/ld: main.cpp:(.text._ZN25PvSampleTransmitterConfig11SetDefaultsEv[_ZN25PvSampleTransmitterConfig11SetDefaultsEv]+0x94): undefined reference to `typeinfo for PvInterface'
/usr/bin/ld: main.cpp:(.text._ZN25PvSampleTransmitterConfig11SetDefaultsEv[_ZN25PvSampleTransmitterConfig11SetDefaultsEv]+0x98): undefined reference to `typeinfo for PvInterface'
/usr/bin/ld: main.cpp:(.text._ZN25PvSampleTransmitterConfig11SetDefaultsEv[_ZN25PvSampleTransmitterConfig11SetDefaultsEv]+0xbc): undefined reference to `PvNetworkAdapter::GetIPAddressCount() const'
/usr/bin/ld: main.cpp:(.text._ZN25PvSampleTransmitterConfig11SetDefaultsEv[_ZN25PvSampleTransmitterConfig11SetDefaultsEv]+0xe8): undefined reference to `PvNetworkAdapter::GetIPAddress(unsigned int) const'
/usr/bin/ld: main.cpp:(.text._ZN25PvSampleTransmitterConfig11SetDefaultsEv[_ZN25PvSampleTransmitterConfig11SetDefaultsEv]+0xf0): undefined reference to `PvString::GetAscii() const'
/usr/bin/ld: main.cpp:(.text._ZN25PvSampleTransmitterConfig11SetDefaultsEv[_ZN25PvSampleTransmitterConfig11SetDefaultsEv]+0x11c): undefined reference to `PvString::GetAscii() const'
/usr/bin/ld: main.cpp:(.text._ZN25PvSampleTransmitterConfig11SetDefaultsEv[_ZN25PvSampleTransmitterConfig11SetDefaultsEv]+0x13c): undefined reference to `PvString::~PvString()'
/usr/bin/ld: main.cpp:(.text._ZN25PvSampleTransmitterConfig11SetDefaultsEv[_ZN25PvSampleTransmitterConfig11SetDefaultsEv]+0x204): undefined reference to `PvSystem::~PvSystem()'
/usr/bin/ld: main.cpp:(.text._ZN25PvSampleTransmitterConfig11SetDefaultsEv[_ZN25PvSampleTransmitterConfig11SetDefaultsEv]+0x234): undefined reference to `PvString::~PvString()'
/usr/bin/ld: main.cpp:(.text._ZN25PvSampleTransmitterConfig11SetDefaultsEv[_ZN25PvSampleTransmitterConfig11SetDefaultsEv]+0x244): undefined reference to `PvSystem::~PvSystem()'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/main.dir/build.make:149: main] Error 1
make[1]: *** [CMakeFiles/Makefile2:76: CMakeFiles/main.dir/all] Error 2
make: *** [Makefile:84: all] Error 2

As far as I can make out the compiler is able to detect and link the libraries but not find the definition of the functions.

PS:

  • I have double-checked the paths and installation for my architecture ‘Jetpack5.1’
  • I tested this code via visual studio on my windows pc, it was working fine

Kindly help. Thank you.

Hello @sanidhya

unfortunately we can only support Common Vision Blox in this forum.
You could of course use CVB in your application, regardless of which camera you are using.

Cheers,
Tim