これは私の最初の質問ですので、うまくいきません。C++でOctaveライブラリを使用する方法
私はUbuntuの上でのQtのクリエイター(Linuxのnoobの)まず
#include "octave/oct.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Matrix matrix(3,4);
return a.exec();
}
を使用していますC++
でオクターブライブラリを使用しようとしている私はいくつかの未定義の参照のエラーを得ました。プログラムにライブラリがないと分かりましたので、ライブラリ "liboctave.so"を探しました。私はusr/lib/octave-3.2.4でそれを見つけました。もっと正確に言えば、 "liboctave.so"という名前のシンボリックリンクが "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
プログラムはエラーなしで構築されました。未定義の参照についても不平を言うことはありません。しかし、私はそれを実行したとき、私は
は/ホーム/マーティン/プロジェクト/テストビルドデスクトップ/テストの開始を取得...
/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の "ライブラリの追加"機能を使ってこのライブラリを追加しましたが、同じエラーが表示されます。
あなたはそれが知られていない実行 時にしかし、あなたのpovide パラメータ-L$$PWD/../../../../usr/lib/octave-3.2.4/
それをコンパイルするとき
ありがとうございます!最初の選択が有効です。しかし、私は環境変数を宣言するのと同じシェルセッションで実行可能ファイルを実行する必要があります。 QtCreatorで実行可能ファイルを実行しようとすると動作しません。しかし、それはLinuxの知識が不足しているだけです。 –