최근에 C++에서 expect 라이브러리를 사용하는 방법에 대해 example이 발견되었습니다. 나는 그것을 컴파일하려했지만, 컴파일러 (g ++)는 tcl8.5/expect.h가 존재하지 않는다고 말했다. 그래서 나는 tcl8.6/expect.h를 포함하려고 시도했다 - 여전히 같은 오류. 나는/usr/include/디렉토리를 점검했고, tcl8.x 디렉토리가 없다는 것을 알아 차렸을 때 놀라지 않았다. 이름에 "expect"가 포함 된 파일을 검색했습니다. 여기에 내가 무엇을 발견 :C/C++ 용 expect/tcl 라이브러리 포함
/usr/include/expect_tcl.h
/usr/include/expect_comm.h
/usr/include/expect.h
을 내가 컴파일하는 동안 오류가 다음 목록이있어이 중 하나를 포함하려고 불행하게도 때
> g++ test.cpp -Wall -std=c++0x -ltcl8.6 -lglog -o test
/tmp/cce8k1BA.o: In function `task(std::string const&, std::string const&, std::string const&)':
test.cpp:(.text+0x16): undefined reference to `exp_is_debugging'
test.cpp:(.text+0x20): undefined reference to `exp_timeout'
test.cpp:(.text+0x38): undefined reference to `exp_popen'
etc...
가 어떻게이 문제를 해결할 수 있습니까? - tcl8.6 및 5.45을 기대
/usr/bin/ld: cannot find -lexpect
collect2: error: ld returned 1 exit status
나는 모두가 확신 : 나는 기대 LIB (-lexpect)와 연결을 시도 할 때
[편집] 나는 다음과 같은 오류가 발생했습니다 -4가 설치됩니다.
실제로 링크를 시도했지만 다음 오류가 있습니다./usr/bin/ld : can not find -lexpect –
저는 리눅스 빌드 체인에 익숙하지 않은데, 라이브러리를 제대로 설치하지 않았거나 링커가 어디에서 찾을 지 알지 못합니다. 'expect-dev'를 설치 했습니까? 라이브러리에서 드라이브를 검색하고 그 라이브러리가 어디에 있는지보고 링커가 찾을 수없는 이유를 찾아 낼 수 있습니까? – aardvarkk
아쉽게도 배포판에는 expect-dev라는 패키지가 없습니다 (아치 리눅스). 그리고 전에 말했듯이, 저는 이미이 라이브러리를 검색했습니다. 내가 찾은 유일한 파일은 위의 질문에 나열되어 있습니다. –