[solved] Help installing QtSerialPort
I would need some advice in how to install QtSerialDevice.
I have Windows 7 and QtCreator 2.3.1 with Qt 4.7.4 installed.
In Nov 14 2012 I downloaded the current QtSerialPort and installed it, the make-install did not copy the files so I did that manually and after some fiddling I got it to work. At that point I tried to build a project with the functions serial.waitForReadyRead and bytesAvailable but got very strange results from those functions. Later I read in the forum that Kuzuliz states that this package is broken concerning blocking functions on windows.
Now, Jan 16 2013, I downloaded the latest version as I see there have been some updates. However I’m not able to get it correctly installed. This time both make and make-install worked without displaying any errors (as far as I can see). Files were copied from the build directory to my Qt directory.
When trying to compile one of the example projects (terminal) It fails with about 20 lines (different in debug and release) similar to
@error: undefined reference to `_imp___ZN7QtAddOn10SerialPort10SerialPortC1EP7QObject'@
@:-1: error: collect2: ld returned 1 exit status@
My experience tell me that this is caused by wrong version of a library or pre-compiled files so I tried cleaning the project and re-build all, but no success.
To my questions:
- What is the correct way of uninstalling QtSerialPort (before upgrading)?
- Why are files now called SerialPortd0.dll instead of SerialPortd1.dll (etc.)?
- Is there a way to see what version of QtSerialPort I have (downloaded and/or installed)?
- Trying to run an example project (successfully built during make from command line) it asks for SerialPortd1.dll, why (file built was SerialPortd0.dll)?
- Anything else that could help me?
Yes, now is some regressions with building when using MSVC compiler.
bq. 1) What is the correct way of uninstalling QtSerialPort (before upgrading)?
By manually removing all SerialPortXXX depended files from your Qt installation,
from \bin, \lib, \include, \mkspecs\features. This is the easiest way.
bq. 2) Why are files now called SerialPortd0.dll instead of SerialPortd1.dll (etc.)?
QtSerialPort still has no release and it is located in the Playground, so it API may be not stable. So we decided to give it a version #0.1.0. On future, after releasing, it version will be #1.0.0
bq. 3) Is there a way to see what version of QtSerialPort I have (downloaded and/or installed)?
You can lookup version from sources "\src\serialport\serialport.pro", or view SerialPort.dll properties from Windows explorer or so forth.
bq. 4) Trying to run an example project (successfully built during make from command line) it asks for SerialPortd1.dll, why (file built was SerialPortd0.dll)?
Perhaps you did not delete the previous version of the SerialPort Qt directory.
bq. 5) Anything else that could help me?
In any case, to build the current version of the library you can use a temporary workaround to the change to the 1.0.0 version of the library in the "src\serialport\serialport.pro"
With your help on what files to delete before installing the new version it now works like a charm.
I think that version dropping from 1 to 0 confused me, and perhaps the configuration too.
Anyway, thank you very much!