gpt4 book ai didi

qt-creator - 如何在 C++ 中使用 Octave 库

转载 作者:行者123 更新时间:2023-12-02 02:20:22 25 4
gpt4 key购买 nike

这是我的第一个问题,如果表述不当或愚蠢,敬请原谅。

我正在尝试将 Octave 库与 C++ 一起使用

我在 Ubuntu (linux noob) 上使用 Qt creator

#include "octave/oct.h"

int main(int argc, char *argv[])
{
QApplication a(argc, argv);

Matrix matrix(3,4);

return a.exec();
}

起初我遇到了一些 undefined reference 错误。我发现该程序缺少库,所以我查找了库“liboctave.so”。我在 usr/lib/octave-3.2.4 中找到了它。更准确地说,有一个名为“liboctave.so”的符号链接(symbolic link)指向“liboctave.so.3.2.4”文件。我使用 QtCreators 的“添加库”功能将库添加到我的项目中。该程序在我的 .pro 文件中生成了这段代码

unix:!macx:!symbian: LIBS += -L$$PWD/../../../../usr/lib/octave-3.2.4/ -loctave

INCLUDEPATH += $$PWD/../../../../usr/lib/octave-3.2.4
DEPENDPATH += $$PWD/../../../../usr/lib/octave-3.2.4

构建的程序没有错误。甚至不提示 undefined reference 。但是当我运行它时,我得到了

开始/home/martin/Projects/test-build-desktop/test...

/home/martin/Projects/test-build-desktop/test: error while loading shared libraries: liboctave.so: cannot open shared object file: No such file or directory
/home/martin/Projects/test-build-desktop/test exited with code 127

我不明白为什么找不到文件。我正在用肉眼查看文件。

我想通了可能是权限的问题,所以我将“liboctave.so.3.2.4”文件复制到项目位置,重命名为“liboctave.so”并为大家添加了所有权限。然后使用 Qtcreator 的“添加库”功能添加了这个库,我仍然遇到同样的错误。

请帮帮我

最佳答案

liboctave 没有安装在标准位置,当你编译你的 povide参数 -L$$PWD/../../../../usr/lib/octave-3.2.4/ 但是在运行中时间未知。

所以你有两个选择:

  1. 提供环境变量LD_LIBRARY_PATH=/full/path/to/usr/lib/octave-3.2.4然后运行程序:

    export LD_LIBRARY_PATH=/full/path/to/usr/lib/octave-3.2.4
  2. 使用附加选项使用可执行文件对路径进行硬编码:-Wl,-rpath=$$PWD/../../../../usr/lib/octave-3.2.4/

    它会在这个位置搜索它。

关于qt-creator - 如何在 C++ 中使用 Octave 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8516356/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com