0

我只是想编译这个文件helloworld.cpp

#include <iostream>
#include <cvc4/cvc4.h>
using namespace CVC4;
int main() {
        ExprManager em;
        Expr helloworld = em.mkVar("Hello World!", em.booleanType());
        SmtEngine smt(&em);
        std::cout << helloworld << " is " << smt.query(helloworld) << std::endl;
        return 0;
}

使用g++ helloworld.cpp -lcvc4 -o helloworld -lcvc4 -Wno-deprecated. 但它给了我这个错误

/tmp/cc9SFpL4.o: In function `main':
helloworld.cpp:(.text+0xac): undefined reference to `CVC4::ExprManager::mkVar(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, CVC4::Type, unsigned int)'
collect2: error: ld returned 1 exit status

帮助!

我已经安装了CVC4添加 repo 链接/etc/apt/sources.list,然后调用sudo apt-get install cvc4 libcvc4-dev libcvc4parser-dev.

编辑:我打错了g++ helloworld.cpp -lcvc4 ...我用过g++ helloworld.cpp -o helloworld -lcvc4 -Wno-deprecated的 . 实际上我使用了所有的组合、排列。

4

1 回答 1

2

这似乎是 OP 环境的问题。r4C9rAyrd6A1 和我都能够在我们的本地机器上编译该示例。具体问题可能是 OP 的编译器希望在-lcvc4其他标志之后使用链接器标志,例如g++ helloworld.cpp -Wno-deprecated -o helloworld -lcvc4评论中提到的。

于 2016-08-18T12:13:27.453 回答