2014-10-03 2 views
-1

현재 Cuba이라는 패키지를 사용하고 있으며 Matlab mex 환경에서 사용하고 싶습니다. 문제는, 어떻게 환경 변수를 CUBACORES 자동 병렬 처리를 비활성화하도록 설정할 수 있습니까?Mex 환경을 사용할 때 환경 변수를 설정하십시오.

이 MEX 작동하지 않습니다

export CUBACORES=0 

그래서, 질문은,이 컴파일시에 환경 변수를 지정하거나 멕스와 함께 시간을 실행할 수 있습니다?

답변

2

MATLAB 내에서 setenv 기능으로 환경 변수를 설정하십시오.

setenv('CUBACORES', '0'); 

당연히 라이브러리를 읽기 전에이 작업을 수행해야합니다.

쿠바 라이브러리를 사용하는 mex 파일을 컴파일하는 경우 mex 파일 코드에서 환경 변수를 설정할 수 있습니다. 정확히하는 방법은 대상 플랫폼에 따라 다릅니다. 다시 말하면, 환경 변수는 라이브러리가 그것을 읽기 전에 설정되어야합니다.

+0

그래서 예를 들어 전 처리기를 통해 런타임에 수행 할 수 없습니까? – lorniper

+0

전처리 기는 mex 파일을 컴파일하는 일부입니다. 문제의 env 변수는 런타임에 다른 프로세스에서 읽습니다. 쿠바 라이브러리를 컴파일하는 경우 스레딩을 사용하지 않도록 코드를 패치 할 수 있습니다. –

관련 문제