我需要将muparser库导入QtCreator。我使用MinGW构建它们作为静态库,因此我得到了libmuparser.a文件。 该库位于C:\ muparser \ muparser_v2_2_3中。 这是我的.pro文件:
QT += core
QT -= gui
INCLUDEPATH += C:\muparser\muparser_v2_2_3\include
LIBS += -LC:\muparser\muparser_v2_2_3\lib
TARGET = muparsertest
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp
这是我的主要内容:
#include <QCoreApplication>
#include <iostream>
#include "muParser.h"
using namespace mu;
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
Parser p;
return a.exec();
}
包含有效,因为有一个空的主我没有得到任何错误,但是当我尝试创建一个像发布的主要的muparser对象时,我得到这些错误:
error: undefined reference to `mu::Parser::Parser()'
error: undefined reference to `vtable for mu::Parser'
error: undefined reference to `mu::ParserBase::~ParserBase()'
collect2.exe:-1: error: error: ld returned 1 exit status
我做错了什么?
答案 0 :(得分:1)
这可能不是一个称职的答案,但有些消息来源建议将muparser库目录添加到DEPENDPATH(参见:http://www.qtcentre.org/threads/20258-Qt-and-muParser) 我的经验是:muparser.dll通常会重现这种问题。再次构建禁用muparser Makefile中的“动态”选项,然后添加 LIBS + = /libmuparser.a 在.pro文件中。