Я пытаюсь использовать сторонний драйвер из приложения в Qt Creator. Это приложение должно быть включено как статическая библиотека. Он не будет компилироваться без флагов /MT
. После долгого душевного, я получил его до двух ошибок компоновщика:Принудительный порядок связывания библиотек в Qt Creator
msvcrtd.lib(ti_inst.obj):-1: error: LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" ([email protected]@[email protected]@@Z) already defined in LIBCMTD.lib(typinfo.obj)
msvcrtd.lib(ti_inst.obj):-1: error: LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" ([email protected]@[email protected]@@Z) already defined in LIBCMTD.lib(typinfo.obj)
Я думаю, что эта проблема описана here. Если это так, то я полагаю, мне нужно знать, как заставить Qt Creator связывать эти системные библиотеки в определенном порядке, когда я даже не включил их явно в .pro-файл в первую очередь. Если кто-то скажет мне, как это сделать, это было бы здорово. Если, однако, это не та же проблема, описанная на странице MS, то объяснение того, что я делаю , действительно делает неправильным, было бы еще лучше.
Вы должны иметь возможность вручную отредактировать файл .pro и сыграть с заказом библиотеки и посмотреть, помогает ли она. –
Файл .pro не содержит библиотеку msvcrt. Я считаю, что библиотека автоматически включается компилятором MSVC. Когда я пытаюсь включить 'CONFIG + = ordered', а затем libs в правильном порядке, я получаю следующее:' msvcurt.lib (ti_inst.obj): - 1: ошибка: LNK1313: обнаружен чистый модуль; не может связываться с ijw/native modules' – kanders84152
Ничего. Я связывался с неправильной библиотекой msvc. Предполагается использовать 'msvcmrt.lib', а не' msvcurt.lib', а не 'msvcprt.lib'. Кажется, теперь это работает. Спасибо всем. – kanders84152