我想在我的C ++程序中使用z3 API。我想知道要包含哪些头文件以及如何运行包含z3函数等的程序。
我看到了z3源代码附带的example.cpp
文件,为了运行这个文件,我必须在内部执行命令的构建目录中运行make examples
g++ -o cpp_example -I../src/api -I../src/api/c++
../examples/c++/example.cpp libz3.so -lpthread -fopenmp -lrt
现在,如果我创建任何程序,每次需要编译程序时,是否需要像这样编译它(包括../src/api
并链接lib文件)?
请帮帮我,我之前从未使用过z3。任何帮助是极大的赞赏。 :)
答案 0 :(得分:5)
您的问题中的命令行用于其中一个Z3示例应用程序。此命令行在build
目录中执行。构建目录包含Z3编译库:libz3.so
。该命令可能看起来很复杂,因为它正在使用单个命令编译和链接应用程序。指令-I<path-name>
指示g ++在给定目录中查找包含文件。最后,即使我们不在系统中安装Z3包含文件和库,也可以执行该命令。
要在我们的系统中安装Z3包含文件和库,我们应该执行sudo make install
。然后,假设我们创建了一个包含
tst.cpp
#include<iostream>
#include<z3++.h>
using namespace z3;
int main() {
context c;
expr x = c.int_const("x");
std::cout << x + 1 << "\n";
return 0;
}
要编译它,我们可以使用:
g++ -c tst.cpp
要链接并生成可执行文件,我们可以使用:
g++ -o tst tst.o -lz3
最后,我们可以执行它
./tst