2017-09-10 10 views
0

데비안 8에서 Code :: Blocks IDE를 사용하고 있습니다. 소스가 아닌 plplot 라이브러리 양식을 설치했습니다. C :: B에서 새 프로젝트를 만들고 간단한 plplot 예제를 실행하려고하면 컴파일러가 include를 인식하지 못하고 링커가 plplot 라이브러리를 인식하지 못합니다. 어떻게 컴파일하고 소스에서가 아닌 Synaptic에서 설치했을 때 plplot 라이브러리와 링크합니까? 이것이 가능합니까 아니면 현재 패키지를 제거하고 소스에서만 설치해야합니까?데비안의 plplot 라이브러리에 대한 컴파일 및 링크

일반적으로 (시냅스 또는 소스에서) 새 라이브러리를 설치할 때 컴파일러 플래그 및 검색 디렉토리가 무엇인지 알아야하며 링커도 찾을 수 있습니까? 나는 소스에서 설치하는 것이 덜 문제가되는 경향이 있어야한다고 생각합니다!

지금까지 포함 된 헤더에 대한 파일 검색을 수행하고 해당 디렉토리를 컴파일러의 검색 경로에 추가했습니다. 그러나 이것은 매우 성 가시고 순진한 접근법입니다. 이 모든 작업을 수행하는 컴파일러 플래그를 추가하면 더 좋을 것입니다.하지만이를 찾는 방법은 더 좋습니다. 포럼에서 찾을 수있는 플래그 중 일부는 라이브러리의 설명서에서 찾을 수 없습니다. 세 번째 프로그램 라이브러리에 어떤 플래그를 사용해야하는지 알려주는 파일이없는 이유는 무엇입니까? 그럼에도 불구하고 o 파일이 완료되면 "정의되지 않은 참조"와 같은 링커 오류가 발생합니다.

답변

0

plplot 라이브러리의 경우 링커 플래그는 -lplplotd이어야합니다. 컴파일러 옵션에는 플래그가 없지만 알 수없는 헤더를 검색하고 검색 디렉토리 경로에 해당 디렉토리를 추가했습니다. 이제 Example 00이 정상적으로 작동합니다. 촬영하여 -lplplotd 깃발을 발견했지만! x11 예제의 경우 플래그 -lplplotcxxd을 추가해야합니다.

일반적으로 라이브러리 so 파일을 검색해야하는 링커 플래그를 찾을 수 있으며 파일 이름은 일반적으로 플래그입니다 (예 : 라이브러리 libplplotcxxd.so의 경우 플래그는 -lplplotcxxd입니다.

어쨌든, 누군가이 링커 플래그를 찾는 데 더 좋은 단서를 알려주면 기쁠 것입니다.