2016-08-13 3 views
0

난 그냥 g++ helloworld.cpp -lcvc4 -o helloworld -lcvc4 -Wno-deprecated을 사용하여이 파일 helloworld.cpp는 CVC4 C로 코드를 컴파일 할 수 없습니다 ++ API

#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; 
} 

를 컴파일하려합니다. 하지만이 오류가 발생합니다

/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 

도움말!

/etc/apt/sources.listCVC4 repo 링크를 추가 한 다음 sudo apt-get install cvc4 libcvc4-dev libcvc4parser-dev을 호출했습니다.

편집 : 내가 잘못 입력했습니다. g++ helloworld.cpp -lcvc4 ...g++ helloworld.cpp -o helloworld -lcvc4 -Wno-deprecated을 사용했습니다. 실제로 모든 조합, 순열을 사용했습니다.

+0

설치하기 전에'sudo apt-get update'를 했습니까? 저장소와 예제를 사용하여 Ubuntu 14.04.4 LTS에 CVC4를 설치했습니다. – r4C9rAyrd6A1

+0

'g ++ helloworld.cpp -Wno-deprecated -o helloworld -lcvc4'를 시도하십시오. 어떤 시스템에서는'-l' 링커 플래그가 마지막에 나타나야합니다. –

답변

2

OP의 환경에 문제가있는 것 같습니다. r4C9rAyrd6A1과 필자는 로컬 컴퓨터에서 예제를 컴파일 할 수있었습니다. 특정 문제는 OP의 컴파일러가 다른 플래그 뒤에 -lcvc4 링커 플래그를 원했습니다. 의견에 언급 된 바와 같이 g++ helloworld.cpp -Wno-deprecated -o helloworld -lcvc4.

+0

네 말이 맞아. 나는 WSL에서 같은 것을 실행했고 효과가 있었다. 그래서, 내 환경에 문제가있는 것 같습니다. 어쨌든 감사합니다. :) – rnbcoder

+0

아, 지금 편집을 보았습니다. 당신이 일하는 것이 좋았어. –

관련 문제