안녕하세요
call_external을 사용해 intel mkl에서 제공하는 함수들을 사용할 수 있는지 궁금합니다.
아래 예제 코드입니다.
#include <stdio.h>
#include <stdlib.h>
#include “mkl_lapacke.h”
#include “idl_export.h”
__declspec(dllexport) void dee(int argc, void *argv[]) {
double *vxgsw;
result = (double *) argv[0];
*result = 2;
{
위 코드를 사용해 dll을 만들어 call_external을 사용하면 result를 문제 없이 idl로 반환 받을 수 있는데요.
위처럼 간단한 코드 뿐만이 아니라 여러가지 복잡한 작업을 해도 문제는 발견하지 못했습니다.
문제는 위 c 코드 안에 mkl 함수들을 사용하면 idlde가 꺼집니다. 가령 예를 들어 eigenvalue를 구하는 함수인
LAPACKE_dgeev를 사용한다면, 코드가 실행되지 않고 꺼져 버립니다.
dll을 만들지 않고 실행파일을 만들어 실행하면 잘 되긴 합니다.
spawn는 input, output의 교환이 자유롭지 못해 사용하기가 불편하구요.
혹시 해결 방법을 구할 수 있을지요~?