2015-11-20 4 views
1

Я пытаюсь использовать статический lib в моем новом проекте Qt. Lib был создан с Visual Studio 2015 Community Edition и использует C++ 11. Я добавил следующие строки в файл .pro:Qt static library: неопределенная ссылка на функции

CONFIG += c++11 

LIBS += -L$$PWD/lib/ -lRoboticArmLib 

Файл скопирован на его место: ../project/lib/RoboticArmLib.lib

В качестве второго шага я добавил заголовки в проект, но он не может видеть определение функций.

mainwindow.cpp:11: error: undefined reference to RoboticArm::ArmRunner::getInstance()' 

Что еще я должен сделать, чтобы моя программа работала?

Спасибо заранее!

+0

запустить qmake? Это часто помогает;) – Felix

+0

Я пробовал, но это не помогло. Я отправлю ответ на мой вопрос. –

ответ

0

Проблема заключается в следующем. Библиотека была построена с помощью компилятора Visual Studio C++ (версия 2015 г.), а Qt 5.5 хотел бы построить с помощью MinGW или Visual Studio C++ 2013. (Зависит от настроек и версии Qt). Репликатор функций имен не является стандартом в компиляторах, поэтому MinGW и VS C++ работают по-разному. Именно по этой причине MinGW или даже VS 2013 C++ не могут найти определения функций в lib, которые скомпилированы с другим компилятором, в этом случае VS C++ 2015.

Смежные вопросы