01-31-2011 02:45 PM
Hey I am working on a real time acquition program and I am encountering several problems:
10 Project link errors
Undefined symbol '_DIG_DB_Config@20' referenced in "acq #3.c".
Undefined symbol '_Timeout_Config@8' referenced in "acq #3.c".
Undefined symbol '_DIG_DB_HalfReady@12' referenced in "acq #3.c".
Undefined symbol '_Align_DMA_Buffer@24' referenced in "acq #3.c".
Undefined symbol '_WriteToDigitalLine@24' referenced in "acq #3.c".
Undefined symbol '_DIG_DB_Transfer@16' referenced in "acq #3.c".
Undefined symbol '_DIG_Grp_Config@20' referenced in "acq #3.c".
Undefined symbol '_DIG_Block_Clear@8' referenced in "acq #3.c".
Undefined symbol '_DIG_Block_In@16' referenced in "acq #3.c".
Undefined symbol '_DIG_Grp_Mode@28' referenced in "acq #3.c".
Solved! Go to Solution.
01-31-2011 03:03 PM
Hello, I don't know if this makes sense in a realtime environment (never used one) but all these commands are from the Traditional NI-DAQ library. You are infact including dataacq.h, but I 'm not sure why you are also including NIDAQmx.h which is from the more modern NI-DAQmx library.
I seem to remember that you cannot mix instructions from both libraries in a single program: if this is true you should reconsider your code and exclude the instructions and include files pertinent to the library you are not using. Also, make sure the relevant support files are installed on the system and included in the development environment (while installing either traditional daq or daqmx you should be prompted to install support for CVI).
01-31-2011 03:20 PM
I removed NIDAQmx.h, I don't think I need it, but I still receive the same errors.
01-31-2011 04:38 PM
Is Traditional DAQ installed in your system? And have you checked the corresponding option in Library >> Customize panel?
01-31-2011 04:47 PM
Yes, I have the traditional DAQ library installed and it is selected.
I think I need to add a .c file to my build.
if I exclude nidaqex.c from my build I receive 2 additional errors.
02-01-2011 02:07 AM
Well, it's not clear to me what's happening...
nidaqex is a support resources that is shipped with some NI data acquisition example: adding nidaqex.c to your project and putting both nidaqex c and h files in the project directory should fix the additional errors you are mentioning in your last post.
It seems to me that the list of includes is a bit messed up: you are including cvirte.h two times and the order of includes is not the one I was expecting. I suggest you rebuild that list commenting out all items except cvirte.h and userint.h and building up the project: CVI should ask you to include the necessary files (and those only!) and should place them in the correct order. After this try recompiling the project and see if there are some errors more.
02-01-2011 10:48 AM
02-01-2011 10:55 AM
I guess I nned to attach the files
02-01-2011 11:19 AM
Ok, my situation is as follows:
I successfully compiled your project except for WriteToDigitalLine command on which I receive the same Undefined symbol error as you. I have not installed easyio feature in my system and this is the only command that pertains to this library in the code so I suppose that error depends on a missing library on my system. The other functions of your code pertain to standard Traditional NI-DAQ library and compile successfully on my machine.
This makes me think there is some problem in your Traditional Daq installation: try rerunning the setup program selecting to install CVI support and check if you can now compile the project.
02-01-2011 02:55 PM
I re-installed the traditional DAQ 7.4.4 on my xp mactine and some how I still have the error.
I found that I can receive the same error for WriteToDigitalLine command that you do if I comment out easyio.h. Without having the project link errors.
However, if I comment out all 4 WriteToDigitalLine commands with/without easyio.h I receive 9 project link errors (same as before without WriteToDigitalLine).