我正在研究Qt应用程序,它必须使用Scilab的数字引擎来计算一些数据。我的操作系统是Ubuntu 14.04,安装了Scilab v.5.5.0和QtCreator v.3.2.1(Qt 5.3.2)。通过call_scilab(Scilab API)与Scilab连接Qt应用程序
我使用SCILAB帮助提供了一个简单的代码示例:
/****** INITIALIZATION **********/
#ifdef _MSC_VER
if (StartScilab(NULL,NULL,NULL) == FALSE)
#else
if (StartScilab(getenv("SCI"),NULL,NULL) == FALSE)
#endif
{
fprintf(stderr,"Error while calling StartScilab\n");
}
/****** ACTUAL Scilab TASKS *******/
SendScilabJob("myMatrix=['sample','for the help']");
SendScilabJob("disp(myMatrix);"); // Will display !sample for the help !
SendScilabJob("disp([2,3]+[-44,39]);"); // Will display - 42. 42.
/****** TERMINATION **********/
if (TerminateScilab(NULL) == FALSE) {
fprintf(stderr,"Error while calling TerminateScilab\n");
}
我的问题是,点击“运行”后,我得到一个警告如下:
/家庭/中/ Dokumenty/QTWorkspace/build-QTtest-Desktop_Qt_5_3_GCC_32bit-Debug/QTtest:加载共享库时出错:libscicall_scilab.so.5:无法打开共享目标文件:没有这样的文件或目录
我试图将以下行添加到qmake。 pro文件,但没有任何结果:
LIBS += /usr/lib/scilab/libscicall_scilab.so.5
库已经在指定的目录(我已经手动检查过)。在此之前,我尝试了很多其他设置 - 仍然没有成功。
任何人都可以提供这个问题的妥善解决方案吗?
谢谢你的回答。我添加了: LIBS = -L/usr/lib/scilab -lscicall_scilab 我的.pro文件,然后启动QMake。从那以后,我已经得到了libjavasci2.so.5 什么是很有趣的类似的消息,当我说: LIBS = -L/usr/lib目录/ JNI/libjavasci2.so.5.5.0 有再次是scicall_scilab的问题...我如何检查我的库是否安装了32位或64位? – medicaldev 2014-12-07 11:20:33
@medicaldev:'LIBS = -L/usr/lib/jni/libjavasci2.so.5.5.0'正在重写LIBS变量,因为它没有附加。如果您想保留以前的值,请使用'+ =',而不是'='。请停止使用完整路径并将它们反汇编为路径和库名称。 – lpapp 2014-12-07 11:22:05
对,我已经更改为:LIBS + = -L/usr/lib/scilab -lscicall_scilab和LIBS + = -L/usr/lib/jni -ljavasci(或ljavasci2,没有区别)。现在这个消息是关于libjava.so的(在这两种情况下)......我不熟悉Linux下的动态库。 – medicaldev 2014-12-07 11:34:49