加载共享库时出错:cv2.所以使用php exec()为c++应用程序.在web应用程序
error while loading shared libraries: cv2.so using php exec() for C++ app. on web app
我在Debian 7.0.0上使用apache 2和LAMP。我使用CodeBlocks 10.05构建了一个c++应用程序,其中包括openCV-2.4.0。当我最初运行可执行文件时,我得到了以下消息
error while loading shared libraries: cv2.so: cannot open shared object file: No such file or directory
我通过复制cv2修复了这个问题。在/usr/local/lib中,输入
LD_LIBRARY_PATH=/usr/local/lib ; export LD_LIBRARY_PATH
把放到主目录的。bashrc文件中,然后运行
. .bashrc
在我的主目录。但是,LAMP应用程序以www-data作为用户运行,因此,毫不奇怪,当我使用php exec()在web上运行应用程序时,我再次得到错误信息
error while loading shared libraries: cv2.so: cannot open shared object file: No such file or directory
目前还不清楚如何解决这个问题,因为www-data没有主目录,没有。bashrc文件。
您可以尝试将这行放到/etc/profile
或其他系统范围的位置(/etc/bashrc
可能无法工作,因为Apache可能不是由BASH运行的)。您可能需要重新启动Apache和/或计算机才能传播此更改。
然而,LD_LIBRARY_PATH
是最被滥用的环境变量之一,你需要它来运行这个可执行文件的事实可能是一个更大问题的症状,很可能你的可执行文件没有正确链接,OpenCV没有正确安装,或者你的系统没有正确配置。
假设您在/usr/local
中安装了OpenCV,我将假设您自己编译并安装了它。你有理由相信Debian版本库中的版本不够用/太老了吗?如果没有,我建议从/usr/local
卸载你的副本,然后安装libcv-dev
(sudo apt-get install libcv-dev
)包。然后尝试重新编译可执行文件,看看它是否可以在没有LD_LIBRARY_PATH
hack的情况下工作。您还需要重新编译并重新安装依赖于OpenCV的任何其他编译(如果有的话)
- 试图在visual studio上用C++创建一个桌面应用程序
- FFmpeg:制作一个应用程序比直接使用ffmepg更好吗
- 在C应用程序中运行C++(带有STL)函数
- 使用VerQueryValue检索应用程序的文件描述
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- 使用调试/崩溃报告将应用程序部署到客户端
- C++控制台应用程序阻止退出
- 码头化的C++应用程序是否向后兼容早期的内核版本
- 将应用程序从32位移植到64位时出现问题
- 如何改变c++应用程序的视觉效果
- WM_CTLCOLORSTATIC从未在WIN32应用程序中触发
- PC中的程序和PHONE中的本机描述应用程序之间的数据连接
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 示例外壳应用程序显示的 V8 "segmentation fault (core dumped)"错误
- phytec phyBOARD iMX-6在从闪存而不是SD卡运行qt5 opengles应用程序时表现不佳(FPS减半
- 为什么导入Mixed native/CLR lib.dll的本机C++应用程序没有在Mixed lib.dll中的外部变
- 无法使用管道将数据发送到我通过exec(C++)启动的第二个应用程序
- 关闭Qt控制台应用程序会终止exec()调用中的进程,并且无法从main()扩展到范围
- QDialog::exec() 阻止应用程序
- 加载共享库时出错:cv2.所以使用php exec()为c++应用程序.在web应用程序