我正在尝试创建一个Qt应用程序,我需要一个数学表达式评估器来评估这样的事情,例如(4 + 5)*2-9/3.我将此库的.hpp文件(http://www.partow.net/programming/exprtk/)包含在Qt Creator中的项目中,并尝试启动以下代码示例:
#include <cstdio>
#include <string>
#include "exprtk.hpp"
int main()
{
typedef exprtk::expression<double> expression_t;
typedef exprtk::parser<double> parser_t;
std::string expression_string = "3 + sqrt(5) + pow(3,2) + log(5)";
expression_t expression;
parser_t parser;
if (parser.compile(expression_string,expression))
{
double result = expression.value();
printf("Result: %19.15\n",result);
}
else
printf("Error in expression\n.");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我尝试编译并运行它时,我得到以下输出:
debug\main.o:-1: error: too many sections (62303)
Run Code Online (Sandbox Code Playgroud)
可能是什么问题呢?
仅使用pure Qt即可执行以下操作:
QString expression_string("3 + sqrt(5) + pow(3,2) + log(5)");
QScriptEngine expression;
double my_val=expression.evaluate(expression_string).toNumber();
Run Code Online (Sandbox Code Playgroud)