uni에서 프로그래밍 과정 용 GSL을 설치하는 데 문제가 있습니다 (코스는 C로 진행됩니다). Visual Studio Express 2012를 사용하고 있습니다.Visual Studio 2012에서 GNU 과학 라이브러리 사용시 문제
미리 컴파일 된 GSL (GnuWin32)을 다운로드하여 실행하고 VS에서 내 링커 및 포함 옵션을 변경했는데 실제로 코드가 제대로 실행되고 있습니다. 내가 예를 들어 다음과 같은 코드를 사용하고 :
#include <math.h>
#include <stdio.h>
#include <gsl/gsl_matrix.h>
#include <gsl/gsl_blas.h>
int main()
{
size_t i,j;
gsl_matrix *m;
m = gsl_matrix_alloc (10, 10);
for (i = 0; i < 10; i++)
{
for (j = 0; j < 10; j++)
{
gsl_matrix_set (m, i, j, sin (i) + cos (j));
}
}
for (j = 0; j < 10; j++)
{
gsl_vector_view column = gsl_matrix_column (m, j);
double d;
d = gsl_blas_dnrm2 (&column.vector);
printf ("matrix column %d, norm = %g\n", j, d);
}
gsl_matrix_free(m);
}
이 입니다 제대로 실행하고 나에게 정확한 출력을 제공합니다. 그러나 VS가 마지막 중괄호에 도착하면 이상한 메시지가 나타납니다.
"런타임 확인 실패 # 0 - ESP 값이 함수 호출에서 제대로 저장되지 않았습니다. 일반적으로 다른 호출 규칙으로 선언 된 함수 포인터를 사용하여 하나의 호출 규칙으로 선언 된 함수를 호출 한 결과입니다. "
아무도 이런 일을 막을 생각이 있습니까? 나는 인터넷을 샅샅이 뒤졌고, 내가 이해할 수있는 유용한 것을 발견하지 못했다.
들여 쓰기 수준과 어떤 오류 메시지를 볼 수 있도록 코드 서식을 지정하는 데 도움이됩니다. 변경 될 수있는 링크가 아닌 여기에 있어야합니다. – Mark
문제를 설명하는 데 절대적으로 필요한 경우에만 이미지를 사용하십시오. 콘텐츠는 검색 할 수 없으며 프록시 구성으로 인해로드 할 수없는 경우가 많으며 대역폭/데이터가 제한적인 사람들에게 필요한 것보다 커집니다. 대신 텍스트를 질문에 복사하십시오. 감사. –
1. 마지막'gsl_matrix_free (m);'을 생략하면 오류가 지속됩니까? 2. main()은 int를 반환해야하므로 (return code는 C89 코드이므로) 'return 0'이 누락되었습니다. – nos