编译Z3测试示例会产生构建错误

时间:2012-11-01 16:28:38

标签: z3

我从codeplex的源代码编译了Z3。配置详细信息:

  • 操作系统Debian 5.0(Lenny)
  • GLIBC 2.7
  • GCC 4.4.3
  • OpenMP 4.3.4(包版本)

当我尝试构建c示例时,我得到:

../../lib/libz3.so: undefined reference to `std::ctype<char>::_M_widen_init() const@GLIBCXX_3.4.11'

当我尝试构建c ++示例时,我得到:

../../lib/libz3.so: undefined reference to `omp_init_nest_lock@OMP_3.0'
../../lib/libz3.so: undefined reference to `omp_unset_nest_lock@OMP_3.0'
../../lib/libz3.so: undefined reference to `omp_set_nest_lock@OMP_3.0'
../../lib/libz3.so: undefined reference to `omp_destroy_nest_lock@OMP_3.0'.

前面提到的例子是从Z3网站下载的。当我构建与源代码一起提供的test_capi示例时,我得到了上面错误消息的并集。

问题的本质是什么?系统使用Z3有什么先决条件吗?

在另一台Debian 6.0机器上,一切顺利。 提前谢谢。

1 个答案:

答案 0 :(得分:4)

我假设您正在使用官方src版本或主分支。如果是这种情况,您是否可以尝试在test_capi目录中编译test_capi

gcc -o test_capi -I ../lib test_capi.c -L ../bin/external -lz3 -lstdc++ -lgomp

在上面的命令中,我们明确告诉gcc链接C ++标准和OMP库。 对于c ++示例,您只需要包含-lgomp,因为默认情况下g ++将链接到C ++标准库。您可以使用ldd找到其他缺少的依赖项:

ldd ../bin/external/libz3.o

话虽这么说,我正在为Z3开发一个新的构建系统,你可以通过从codeplex获取unstable分支来尝试它。你能尝试一下吗?很高兴收到您的反馈意见,使构建在更多平台上顺利进行。