Извините за расплывчатое название, но не додумался как более точно описать, то с чем сейчас воюю.
Суть такова есть проект, использующий QSerialPort. Так как там где будет запускаться стоит Qt 4.8.3, то QSerialPort я собираю из исходников и тащу с собой в папочке 3rdParty.
У меня стоит Qt 5.4.0 mingw. И под mingw всё подцеплялось и работало, но потом я узнал, что на целевой системе еще и MSVC 2010, и требуются *.lib файлы и тут началось...
Пересобираю QSerialPort под msvc, но при попытке подцепить в про файле статически возникает ошибка
cannot find -lQSerialPort531
Потом я начал пытаться что-то сделать и в процессе обнаружил, что и в mingw сборке всё собирается ТОЛЬКО из того места, где лежало ранее и только теми строками, которые у меня были, когда всё работало
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/3rdParty/QSerialPort/lib/ -lQt5SerialPort
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/3rdParty/QSerialPort/lib/ -lQt5SerialPortd
else:unix:!macx: LIBS += -L$$PWD/3rdParty/QSerialPort/lib/ -lQt5SerialPort
INCLUDEPATH += $$PWD/3rdParty/QSerialPort/include
DEPENDPATH += $$PWD/3rdParty/QSerialPort/include
win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$PWD/3rdParty/QSerialPort/lib/libQt5SerialPort.a
else:win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$PWD/3rdParty/QSerialPort/lib/libQt5SerialPortd.a
else:win32:!win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$PWD/3rdParty/QSerialPort/lib/Qt5SerialPort.lib
else:win32:!win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$PWD/3rdParty/QSerialPort/lib/Qt5SerialPortd.lib
else:unix:!macx: PRE_TARGETDEPS += $$PWD/3rdParty/QSerialPort/lib/libQt5SerialPort.a
Попытка что-то изменить, например сделать вот такую конструкцию
CONFIG(release, debug|release): LIBS += -L$$PWD/3rdParty/QSerialPort/lib/ -lQt5SerialPort
CONFIG(debug, debug|release): LIBS += -L$$PWD/3rdParty/QSerialPort/lib/ -lQt5SerialPortd
INCLUDEPATH += $$PWD/3rdParty/QSerialPort/include
DEPENDPATH += $$PWD/3rdParty/QSerialPort/include
CONFIG(release, debug|release): PRE_TARGETDEPS += $$PWD/3rdParty/QSerialPort/lib/libQt5SerialPort.a
CONFIG(debug, debug|release): PRE_TARGETDEPS += $$PWD/3rdParty/QSerialPort/lib/libQt5SerialPortd.a
Приводит к ошибке
cannot find -lQSerialPortd522
Само собой файлы по указанным адресам есть и libQt5SerialPort и libQt5SerialPortd.
Причем самое обидное, что ошибки потом магическим образом пропадают и проект собирается без ошибок, но при этом не генерирует dll и lib.
Потом я решил попробовать адреса забить не относительные, а абсолютные. И увидел следующие ошибки LNK2019 в количестве 29 штук по штуке на каждую функцию QSerialPort, которая используется в моём проекте.
Можете помочь пожалуйста я не могу понять природу вообще этих ошибок, так и не смог нагуглить откуда берутся эти цифры в конце -lQSerialPortd522 и что они значат. И как вообще делать, чтоб было правильно? Я уже ничего не понимаю, адреса есть я их не руками забиваю, но он всё равно мне выдаёт cannot find. А когда не выдаёт ошибки просто ничего не делает... Помогите пожалуйста очень надо