2016-07-10 6 views
0

shogun 개발자 페이지에 제공된 가우스 커널 테스트를 컴파일하려고 할 때
https://github.com/shogun-toolbox/shogun/wiki/README_developer에이 오류가 발생합니다.
.so 쇼 군 라이브러리를 생성하기 위해 주어진 지시 사항을 따랐습니다.
그런 다음 공유 객체 라이브러리가 포함 된 위의 디렉토리로 이동하여 "g++ GTest.cpp shogun/libshogun.so -o a.out" 주문을 발행했으며이 게시물의 주제 인 오류가 발생했습니다.
인터넷에 연결된 스레드 (2 링크 제한)를 통과했지만 특정 솔루션을 찾을 수 없습니다.
아무도이 문제를 해결하는 방법을 알고 있습니까?.so 객체로 컴파일 할 때 'shogun :: SGRefObject :: unref()'에 대한 정의되지 않은 참조

답변

0

공유 라이브러리를 예제와 직접 연결하면 안됩니다. 당신이 장군 기반 예제 파일을 만든 말, 당신이 실행해야합니다의이 컴파일하기 위해서는 shogun_example.cpp을 부르 자 :

g++ shogun_example.cpp -o shogun_example -lshogun

이는 libshogun.so 링커의 검색 경로에있는 경우입니다. 컴파일 된 libshogun.so 검색 경로에없는 경우

그러면 예를 들어, -L와 컴파일러에 공유 라이브러리의 위치를 ​​제공해야

g++ shogun_example.cpp -o shogun_example -L<path to the shogun shard lib> -lshogun

+0

불행하게도,이 didnt 한 작업. 예제 폴더 내에서 예제를 컴파일하기 위해 "g ++ -std = C++ 11 -DHAVE_EIGEN3 classifier_gaussian_process_binary_classification.cpp -o classgp -lshogun"명령을 사용하고 있으며 정의되지 않은 참조가 왼쪽으로 세탁되었습니다. 각 g ++ include 검색 변수를 설치 후 shogun이 include 폴더를 저장 한/usr/local/include 폴더에 설정했습니다. 또한 shogun이 공유 라이브러리를 찾을 수 있도록 LD_LIBRARY_PATH 변수를 설정했습니다. 나는 다른 예제를 컴파일 할 수 있고 apt-get을 사용하여 eigen 3을 설치했다. – ConfusedGrammer

+0

그래서 작동하지 않는 이유는 무엇인가? – ConfusedGrammer

+0

문제가 해결되었습니다. OpenCL은 의존성입니다. 공유 라이브러리를 cmake와 함께 설치하고 있기 때문에 텍스트를 읽지 않았기 때문에 간과 한 것입니다. 여기서 교훈은 설치하는 동안 cmake 명령을 읽는 것입니다. 저를 참아 주셔서 감사합니다. – ConfusedGrammer