2016-09-05 3 views
0

저는 개인 프로젝트에서 SCIP를 사용하려고했습니다. 나는 scipoptsuite-3.2.1을 컴파일 할 수 있었다. (비록 내가 slob이기 때문에 결과 폴더가 내 Download 폴더에있다하더라도) 제대로 작동하지 않는 것처럼 보인다.SCIP를 기존 프로젝트에 연결하기

Eclipse CDT에서 작동합니다. 헤더를 올바르게 연결할 수는 있지만 함수는 인식되지만 여기에 정의되지 않은 참조가 있습니다. 내가 SCIP의 라이브러리 (libscip.a)를 연결하려고하면 그러나, 나는 다음과 같은 오류가 있습니다

/usr/bin/ld: /home/myusername/Downloads/scipoptsuite-3.2.1/scip-3.2.1/lib/libscip.a(fileio.o): undefined reference to symbol 'gzdopen' 
//lib/x86_64-linux-gnu/libz.so.1: error adding symbols: DSO missing from command line 
collect2: error: ld returned 1 exit status 
make: *** [Segmentation_2D] Error 1 

가를 해결하기 위해, 나는 명령 -lz을 추가하지만 ... 그 중 하나가 작동하지 않습니다. 내가 같은 연결하면

  • 는 : -lscip -lz -> 컴파일이 무한 루프에가는 시작
  • 나는 같은 연결하면 : -lz -lscip - 내가 같은 연결하면> DOS
  • 누락 : -lz -lscip -lz -> 컴파일이 무한 루프에 들어가기 시작합니다.

다음에 시도 할 내용이 없으므로 도움이 될 것입니다.

감사

편집 -

지금 플래그 ZLIB = false를 작성한 Readline = 거짓과 ZIMPL = 거짓을 사용하여 설치를 다시 실행했다. 필자는 INSTALLDIR = ""명령을 사용하여 시스템에 라이브러리, 헤더 및 바이너리를 올바르게 배치했습니다. 원래는 ../thePath, thePath = "/ usr/local"에 링크되었으므로 Makefile을 편집해야했습니다. ", 예를 들면).

그러나 여전히 작동하지 않습니다. 내가 무한 루프라고 생각한 것은 사실 모든 함수의 미해결 호출 인 것처럼 보이는 수많은 오류 (13.000+)입니다. (지금 -lscip 만 사용하여 컴파일합니다).

지금 어떻게해야합니까?

답변

0

불행히도 libscip은 올바른 애플리케이션 라이브러리가 아닙니다. SCIP Optimization Suite (make scipoptlib)의 lib/ 디렉토리에서 libscipopt을 사용해야합니다.

libscip는 순수한 SCIP 코드를 포함하고 만 NLP를 할 수있는 LP 해결사

  • libnlpi을 가지고

    • liblpi{spx,cpx,...}와 함께 작동합니다 해결사
    • libobjscip C++ 지원을위한

    libscipopt은 이러한 모든 라이브러리를 하나로 결합하여보다 쉽게 ​​사용할 수 있도록되어 있습니다.

  • 관련 문제