我正在尝试在我的新Qt项目中使用静态库。 lib是使用Visual Studio 2015社区版创建的,并使用C ++ 11.我在.pro文件中添加了以下行:
CONFIG += c++11
LIBS += -L$$PWD/lib/ -lRoboticArmLib
将文件复制到其位置:../ project / lib / RoboticArmLib.lib
作为第二步,我已将标题添加到项目中,但它无法看到函数的定义。
mainwindow.cpp:11: error: undefined reference to RoboticArm::ArmRunner::getInstance()'
我还应该做些什么来使我的计划有效?
提前谢谢!
答案 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。