From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
08-30-2013 03:09 PM
We are still investigating the root cause of this issue, but I wanted to update you on a workaround. The problem is that niimaqdx.lib is located in the wrong directory.
Copy the library from:
C:\Program Files (x86)\National Instruments\Shared\CVI\Bin
To:
C:\Program Files (x86)\National Instruments\Shared\CVI\Bin\msvc
In fact, you should move all of the vision .lib files to the msvc directory. It would probably be best to copy them there instead of moving them in case anything is depending on the libraries being at that location.
09-05-2013 07:54 AM
hi, one comment on this. We seem to have gone down this path too - updating vision software to 2013 disabled creating a debug dll with code referencing niimaqdx.lig, and then updating cvi to 2013 disabled creating a release dll as well.
Copying niimaqdx.lib from the shared\cvi\s\bin directory to shared\cvi\bin\msvc didn't resolve the missing symbol. But copying from ni-imaqdx\lib\msvc did.
The library in the latter directory was much smaller, 38k instead of 187k. (This is for imaqdx v4.2, latest I could find). Is there a chance that the library put in the shared directory was compiled to reference the debug version of cvi base library instead of the release ? The three missing symbols UPLibBreakpointWithElab, etc. all look like runtime memory access debug functions.
10-16-2013 06:29 AM
I have had the exact same problem. Updating from CVI 2012 to 2013 broke BOTH when using imaq & vision.
In order to make this thread findable by the search engine, the errors are:
error: Undefined symbol '__UPLibBreakpointWithElab@16' referenced in "c:\Program Files (x86)\National Instruments\Shared\CVI\Bin\niimaqdx.lib".
error: Undefined symbol '__UPLibChkSize@24' referenced in "c:\Program Files (x86)\National Instruments\Shared\CVI\Bin\niimaqdx.lib".
error: Undefined symbol '__UPLibClearArgs@0' referenced in "c:\Program Files (x86)\National Instruments\Shared\CVI\Bin\niimaqdx.lib".
10-25-2013 02:08 PM
I ran into this issue as well, after updating to vision acquisition 2013.08 and CVI 2013. D_Biel's workaround didn't resolve my issue, but TheCoffeeBeing's did.
However, I still get missing symbol errors during the linker stage. Curiously, it won't find the symbols for imaqCreateImage, imaqDispose, imaGetImageInfo or imaqSetWindowThreadPolicy, while any calls starting in IMAQdx apparently are fine.
I've tried manually adding the lib and fp files for imaq and imaqdx to the project, but to no avail.
10-28-2013 10:03 AM
atomcooler
I think your issue is the same as mine; I guess that your missing symbols are defined in nivision.h, not imaqdx
I have just tried this fix from the NI engineer answering my support call, it seems to work:
Edit nivision.h. Find the block that starts #if !defined(IMAQ_STDCALL). Modify it to read as follows:
#if !defined(IMAQ_STDCALL)
#ifndef __GNUC__
#define IMAQ_STDCALL __stdcall
#else
#define IMAQ_STDCALL __stdcall
#endif
#endif
Please let me know if this works for you also.
10-29-2013 11:03 AM - edited 10-29-2013 11:04 AM
Hi Steve,
that did indeed solve my problem.
Can't say I'm impressed with NI's QA process. I understand switching compilers on CVI is a big endeavour, but that you ship a product that won't compile code linking to one of your major libraries is interesting, to say the least.
10-29-2013 12:16 PM
atomcooler.
I agree. I've raised this suggestion in the CVI Idea Exchange, just to rattle a few cages.
03-20-2014 06:12 PM - edited 03-20-2014 06:13 PM
Copying niimaqdx.lib from the shared\cvi\s\bin directory to shared\cvi\bin\msvc didn't resolve the missing symbol. But copying from ni-imaqdx\lib\msvc did.
that worked for me 🙂
07-29-2014 05:09 AM
Hi
instead of changing the header file one can swap "default calling convention 32bit" to __stdcall in build options.
copying the niimaqdx.lib to msvc folder made imaqSetEventCallback(,) function to work for me!
08-03-2014 12:39 PM