z3 - 编译示例 z3 代码时出现未定义的引用错误
问题描述
我安装了 Z3 并且能够使用 make 示例编译 C/C++ 示例。但是,当我尝试通过包含“z3++.h”和使用 lz3 链接器标志来编译任何示例代码时,我得到未定义的引用错误。
当我之前安装 Z3 并编译相同的代码时,它可以工作。我没有对 Z3 代码进行任何更改,但现在它会引发意外错误。
猫测试.cpp
#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 测试.cpp
g++ -o 测试 test.o -lz3
错误:test.o:在函数“z3::operator+(z3::expr const&, z3::expr const&)”中:test.cpp:(.text._ZN2z3plERKNS_4exprES2_[_ZN2z3plERKNS_4exprES2_]+0x203):未定义对“Z3_mk_re_union”的引用test.o:在函数“z3::concat(z3::expr const&, z3::expr const&)”中:test.cpp:(.text._ZN2z36concatERKNS_4exprES2_[_ZN2z36concatERKNS_4exprES2_]+0x76):未定义对“Z3_is_seq_sort”测试的引用。 cpp:(.text._ZN2z36concatERKNS_4exprES2_[_ZN2z36concatERKNS_4exprES2_]+0xd3): undefined reference to `Z3_mk_seq_concat' test.cpp:(.text._ZN2z36concatERKNS_4exprES2_[_ZN2z36concatERKNS_4exprES2_]+0x11d): undefined reference to `Z3_is_re_sort' test.cpp:(.text. _ZN2z36concatERKNS_4exprES2_[_ZN2z36concatERKNS_4exprES2_]+0x17a):未定义对“Z3_mk_re_concat”collect2的引用:错误:ld返回1退出状态
解决方案
迟到的答案,但我认为您应该在构建命令中添加“-lz3”标志。
推荐阅读
- reactjs - 每次使用 redux 发生状态更改时,我如何调用调度?
- clojure - clojure 中的定点组合器
- r - R:如何根据其他列的名称创建新变量
- linux - 使 pandoc 对 Linux 上的 root 用户可用
- c++ - 使用 SDL_PIXELFORMAT_UNKNOWN 好不好?
- java - 如何在 docker 容器中连接到 NREPL
- node.js - AWS lambda 函数代理从服务层获取二进制 blob (PDF) 的请求,然后返回给客户端
- xcode - 我怎样才能正确地使 SKLabelNode 跟随物理的身体?
- c++ - 使用 boost::program_options 指定多个标志
- hibernate - 将 Corda 节点迁移到 Corda 4.3 时休眠