避免使用 sudo 将 z3++.h 用作库

avoid using sudo to use z3++.h as a lib

我是第一次使用 z3prover,在阅读了大部分相关答案后,我注意到我需要尝试: sudo make install 。我怎么能跳过 link z3 in /usr/bin /usr/lib 在我自己的 C++ 项目中使用 z3++.h。 (因为我注意到不是每个人都有 sudoer,我希望我的代码在没有 sudoer 的情况下也能正常运行。

如果您使用 GCC 作为编译器,您应该为您的项目添加 -I 选项,如下所示:

g++ -Iz3_path/include -Lz3_path/lib  -lz3

如果您想在 C/C++ 项目中使用 z3 源代码,则需要编译它。编译它会给你 link 反对的库。如果您只是下载源代码,您可以找到 header,但找不到 link,因此无法创建您自己的可执行文件。

但这样做根本不需要 sudo 访问权限。这样做的正确方法实际上在 https://github.com/Z3Prover/z3 页面的 README 中进行了解释。大致来说,他们是这样的:

python scripts/mk_make.py --prefix=/home/leo
cd build
make
make install

请注意,在第一行的 prefix 参数中,您告诉 z3 在哪里安装所有内容。将该路径更改为您拥有 write-access 的位置。这样您就不需要 sudo 访问权限。

为了成功编译您的项目,您需要告诉您的编译器在哪里寻找动态库和 header 文件。如果您 运行 遇到问题,请单独询问。