2016-12-18 1 views
1

C 프로그램에서 Base64 인코딩/디코딩을 사용해야하고 Libb64 라이브러리의 일부 기능을 사용하려고했습니다. 내가 -libb64, -llibb64, -lbase64과 같은 매개 변수를 사용하여 코드를 컴파일 할 시도했지만 작동하지 않았다컴파일시 Libb64 라이브러리를 연결하는 방법은 무엇입니까?

... undefined reference to 'base64_init_encodestate' 
... undefined reference to 'base64_encode_block' 
... undefined reference to 'base64_encode_blockend' 
collect2: error: ld returned 1 exit status 

: 나는 코드를 컴파일하면 아래의 오류를 제공합니다.

컴파일 할 때 추가해야하는 링크 매개 변수는 무엇입니까? 아니면 어떤 방법으로이 문제를 해결할 수 있습니까?

+0

컴파일 명령을 표시하고 컴파일러 출력을 완료하십시오. – user902384

+0

여기에 중복 된 수의 톤 : http://stackoverflow.com/questions/tagged/undefined-reference%20c?sort=votes&mode=all – alk

+0

왜 정의되지 않은 참조 오류가 발생하는지 압니다. 매개 변수의 이름을 알아야합니다. –

답변

2

시도해 볼 수 있습니다 -lb64. 그것은 추측이며 작동하지 않을 수도 있습니다. 시도해보십시오. 제대로 작동하지 않으면 실제로 설치하고 정확한 답변을 얻을 것입니다.

편집 1 : 문제가 해결되었지만 실제 답변이 아닙니다. Linux에 라이브러리를 설치할 때마다 (Linux를 사용하는 것으로 가정 함) libxyz.so이라는 이름으로 설치되며 컴파일러/링커에 대한 스위치는 -lxyz이어야합니다. 라이브러리의 이름을 모르는 경우에는 Synaptic과 같은 파일을 검사하여 해당 패키지에 어떤 파일이 설치되어 있는지 확인하십시오. 소스별로 설치하는 경우, 설치중인 소스 디렉토리에서 생성 된 라이브러리를보십시오. yum, apt-get 또는 pacman 또는 emerge에 대한 정확한 명령은 다른 배포판의 패키지 관리자이지만 사용자 설명서 페이지를 읽고 알 수 있습니다.

+0

지금 -lb64를 시도하고 성공적으로 컴파일되었습니다. 지금 함수를 테스트하고 있습니다. –

+0

좋습니다. 투표를 해 주시거나 답변을 수락하십시오. 도움이됩니다. – user902384

+0

그것은 일했다! 고마워요 :) –

관련 문제