I don’t think I fully understand the logical separations between the parts of the VisionWorks package (VisionWorks CUDA API vs OpenVX API vs OpenVX Framework). Here’s what I mean:
I’m writing some test code for VisionWorks that makes use of the stereo image processing features. All of the VisionWorks examples I can find use things from the ovxio namespace, which are defined in the nvxio/include/OVX headers. I can compile and link fine just using the visionworks.pc pkg-config settings (libvisionworks.so, libcuda- libcudart.so as the only linked libraries).
I’m NOT compiling /usr/share/visionworks/sources, and thus am NOT linking in libnvx.a and libovx.a. I’m trying to use and link against what is available from the binary visionworks package itself.
However, when I run I get the following error:
undefined symbol: _ZN5ovxio21checkIfContextIsValidEP11_vx_context
Seems that this is probably defined in libnvx.a or libovx.a.
So my question: Do I have to compile /usr/share/visionworks/sources and link against these libraries to get the OpenVX utilities in my package? If I want to just use VisionWorks itself (whatever that means) and not compile additional sources, am I limited to the API listed in the Help documents as “NVX CUDA API”?