0

我在 Centos 5 上编译了一些 Matlab 代码。

我尝试像这样运行它:

run_cnaseq006.sh /projects/rcorbettprj2/mutationSeq/MCR/v714/ "/home/rcorbett/slx_service_rc/etc/cnv_test_data/CNV_test/config.m"
------------------------------------------
Setting up environment variables
---
LD_LIBRARY_PATH is .:/projects/rcorbettprj2/mutationSeq/MCR/v714//runtime/glnxa64:/projects/rcorbettprj2/mutationSeq/MCR/v714//bin/glnxa64:/projects/rcorbettprj2/mutationSeq/MCR/v714//sys/os/glnxa64:/projects/rcorbettprj2/mutationSeq/MCR/v714//sys/java/jre/glnxa64/jre/lib/amd64/native_threads:/projects/rcorbettprj2/mutationSeq/MCR/v714//sys/java/jre/glnxa64/jre/lib/amd64/server:/projects/rcorbettprj2/mutationSeq/MCR/v714//sys/java/jre/glnxa64/jre/lib/amd64/client:/projects/rcorbettprj2/mutationSeq/MCR/v714//sys/java/jre/glnxa64/jre/lib/amd64
??? Error using ==> run at 65
/home/rcorbett/slx_service_rc/etc/cnv_test_data/CNV_test/config.m not found.

但是,我可以很容易地看到该文件确实存在:

ll /home/rcorbett/slx_service_rc/etc/cnv_test_data/CNV_test/config.m
-rw-r--r-- 1 rcorbett users 3 Aug 13 09:10 /home/rcorbett/slx_service_rc/etc/cnv_test_data/CNV_test/config.m

我尝试了不同的引号,但没有引号,但我不知道为什么它不会执行文件。该代码作为未编译的 matlab 代码可以正常工作,因此在编译后会发生一些有趣的事情,这会影响识别文件的能力。

编辑: run_cnaseq006.sh 是用于运行我编译的代码的自动生成的 shell 脚本。它大约有 40 行,所以不能很好地复制到这里。但是,我可以说它只是一个包装器,以确保在我运行编译的代码时加载所有库。我得到的所有编译代码都得到了几乎完全相同的 shell 脚本包装器。

4

1 回答 1

0

我被指向这个链接:

http://blogs.mathworks.com/loren/2008/08/11/path-management-in-deployed-applications/

“run”命令使用像“cd”这样的路径管理功能。根据上述文章,此类活动在已编译的应用程序中不受支持,并且可能会产生不可预知的结果。

我放弃使用另一种方法来定义我的运行时变量,方法是使用 getline 读取文件并使用“eval”将我的变量加载到内存中。

于 2012-08-14T16:51:43.513 回答