2012-05-06 2 views
0

그래서 Cygwin에서 소스에서 GSL을 컴파일했습니다. 모든 것은 잘되었다, 나는 어떤 오류라도 얻지 않았다. 내가 몇 가지 간단한 코드를 컴파일 할 때, 나는 다음과 같은 오류를 얻을 :GNU 사이언 티픽 라이브러리를 사용하려하지만 이상한 링커 오류가 발생했습니다.

..\..\..\Programme\CodeBlocks\MinGW\lib\libgsl.a(error.o) In function `gsl_error': 
\usr\include\gsl\err\error.c|43|undefined reference to `__getreent' 
\usr\include\gsl\err\error.c|44|undefined reference to `__getreent' 
\usr\include\gsl\err\error.c|45|undefined reference to `__getreent' 
..\..\..\Programme\CodeBlocks\MinGW\lib\libgsl.a(stream.o) In function `gsl_stream_printf': 
\usr\include\gsl\err\stream.c|37|undefined reference to `__getreent' 
..\..\..\Programme\CodeBlocks\MinGW\lib\libgsl.a(stream.o) In function `gsl_set_stream': 
\usr\include\gsl\err\stream.c|61|undefined reference to `__getreent' 

은 내가 libgsl.a 및 libgscblas.a 라이브러리를 링크 없으며에 대한 다른 기능이 불평한다. 나중에 참조 할 수 있도록

: 당신이 코드 :: 블록에서 툴체인을 설정하려는 경우 그나마 프레스

+0

이것은 시스템 (또는 컴파일에 사용하는 cmd 상자)에서 cygwin의 설치 문제입니다. 오류뿐만 아니라 컴파일 환경을 공유하십시오. 프로그래밍 문제도 아니고 gsl의 문제도 아닙니다. –

답변

1

당신이보고있는 오류는 MinGW는 Cygwin에서 연결하지 않는다는 사실에 기인 확인 대신 취소 기본적으로 DLL.

MinGW 및 Cygwin에서 컴파일 된 라이브러리는 서로 잘 재생되지 않습니다. possible to get it to work이지만 실제로는 좋은 생각이 아닙니다.

이 경우, 대신 번들는 MinGW 분포의 Cygwin에서의 툴체인을 사용하므로 코드 :: 블록을 설정하거나뿐만 아니라는 MinGW와 GSL을 컴파일 중 하나를 의미, 프로젝트에 대한 하나 툴 체인을 선택합니다.

+0

이 대답은 내 믿을 수있는 수정 구슬을 현명하게 사용하여 가져 왔습니다. – Christoph

+0

Cygwin 툴체인을 이미 사용하려고 시도했지만 구성이 저장되지 않아 MinGW 툴체인으로 남았습니다. <_ <. 이제 실제로 올바른 툴체인을 사용하여 시도해보십시오. – user1290204

0

당신은 Cygwin에서에서 다음 옵션을 사용할 수 있습니다 :

./configure CC=i686-w64-mingw32-gcc 

은 그럼 당신은 CodeBlocks에서 GSL을 사용할 수 있습니다.