我从codeplex的源代码编译了Z3。配置详细信息:
当我尝试构建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机器上,一切顺利。 提前谢谢。
答案 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
分支来尝试它。你能尝试一下吗?很高兴收到您的反馈意见,使构建在更多平台上顺利进行。