【发布时间】:2017-08-22 06:17:06
【问题描述】:
我正在尝试使用 opencv 创建一个 C++ 应用程序,并与其他未在其 PC 上安装 Opencv 的用户共享该应用程序。我该怎么做?
我试过了:
- 我复制了一些 /home/myfolder 路径中的所有头文件、源文件和库。
- 我创建了应用程序并链接了 /home/myfolder 中存储的所有文件。
- 将环境变量 LD_LIBRARY_PATH 设置为指向 .bashrc 文件中的 /home/myfolder,以便应用程序可以在运行时找到库。
我能够在我的 PC 上编译,但是当我与其他 PC 共享我的文件夹并链接所有库时,我收到 Opencv 未定义的引用错误。
谢谢
【问题讨论】:
-
假设它是相同的架构并且您只想共享应用程序本身,为什么不将可执行文件传递给另一台 PC 并运行呢? (当然你需要静态链接 OpenCV 库)。
-
感谢您的回复。两台PC都是64位的。如果我只共享可执行文件,则它必须与其他 PC 中没有的所有库(如 opencv)链接。所以我在.bashrc中设置环境变量路径指向共享文件夹,它有Opencv lib文件,但我仍然面临未定义的引用错误。
-
你试过用静态链接编译它吗?
-
如果我的理解是正确的,你的意思是说在我的 PC 上构建了我的应用程序后,我应该将整个应用程序连同所有必要的头文件、源文件和 lib 文件复制到另一台 PC 并在编译时我应该做静态链接。我的理解正确吗?如何进行静态链接?请提出建议。
-
静态链接意味着您将所需的库集成到可执行文件本身中。所以它是真正的“独立”。这有增加可执行文件大小的缺点。