Hi,
I can't get the Waveforms SDK working. The Waveforms application works fine, and the dwfcmd command as well.
I have tried the AUR packages (waveforms and adept runtime) on Archlinux, and then made a fresh Ubuntu VM (quemu) (from iso: ubuntu-22.04.1-desktop-amd64.iso) where I installed digilent.adept.runtime_2.26.1-amd64.deb and digilent.waveforms_3.19.5_amd64.deb downloaded from the digilent website.
The Python examples, or my own Python scripts using the SDK always throw an error of an undefined symbol.
File "/usr/share/digilent/waveforms/samples/py/Device_Enumeration.py", line 19, in <module>
dwf = cdll.LoadLibrary("libdwf.so")
File "/usr/lib/python3.10/ctypes/__init__.py", line 452, in LoadLibrary
return self._dlltype(name)
File "/usr/lib/python3.10/ctypes/__init__.py", line 374, in __init__
self._handle = _dlopen(self._name, mode)
OSError: /lib/libdwf.so: undefined symbol: DmgtConfigureFPGA
The nm command also says that there are no symbols in /lib/libdwf.so or /usr/lib/libdwf.so. Shouldn't there be some?
I also can't build any C examples, or the dwfcmd command. (I can run the included one, but not compile it myself)
When building the dwfcmd with: sudo g++ -ldwf dwfcmd.cpp -o out I get endless warnings and hidden somewhere in them is one error:
dwfcmd.cpp: In function ‘bool FAnalogOutPlay(HDWF, int, int)’:
dwfcmd.cpp:1734:17: error: ordered comparison of pointer with integer zero (‘char*’ and ‘int’)
1734 | if(szRun<=0){
after commenting out the code that causes this error, ld complains about not finding symbols.
A bunch more of undefined reference to ...
/usr/bin/ld: dwfcmd.cpp:(.text+0xcce7): undefined reference to `FDwfDigitalIOOutputGet'
/usr/bin/ld: dwfcmd.cpp:(.text+0xcd9e): undefined reference to `FDwfDigitalIOStatus'
/usr/bin/ld: dwfcmd.cpp:(.text+0xcdd7): undefined reference to `FDwfDigitalIOInputInfo'
/usr/bin/ld: dwfcmd.cpp:(.text+0xce10): undefined reference to `FDwfDigitalIOInputStatus'
/usr/bin/ld: /tmp/ccdSlu5O.o: in function `main':
dwfcmd.cpp:(.text+0xd311): undefined reference to `FDwfParamSet'
/usr/bin/ld: dwfcmd.cpp:(.text+0xd930): undefined reference to `FDwfDeviceCloseAll'
collect2: error: ld returned 1 exit status
libusb-1.0.so.0 is present on both Arch and Ubuntu. as verified with ldconfig -p | grep usb.
What could be the problem here?