実行したいOctaveスクリプトQt GUIアプリケーションから実行します。私は、次のしているQtの創造主からのC++コードをコンパイルしようとしていた場合QTからのオクターブ:未定義参照
#include <iostream>
#include <octave/oct.h>
#include <octave/octave.h>
#include <octave/parse.h>
#include <octave/interpreter.h>
int
main (void)
{
string_vector argv (2);
argv(0) = "embedded";
argv(1) = "-q";
octave_main (2, argv.c_str_vec(), 1);
octave_idx_type n = 2;
octave_value_list in;
for (octave_idx_type i = 0; i < n; i++)
in(i) = octave_value (5 * (i + 2));
octave_value_list out = feval ("gcd", in, 1);
if (out.length() > 0)
std::cout << "GCD of ["
<< in(0).int_value()
<< ", "
<< in(1).int_value()
<< "] is " << out(0).int_value()
<< std::endl;
else
std::cout << "invalid\n";
clean_up_and_exit (0);
}
:ここ
...
win32 {
INCLUDEPATH += c:/Octave/Octave-4.2.1/include/octave-4.2.1/octave
LIBS += c:/Octave/Octave-4.2.1/lib/octave/4.2.1/liboctave.dll.a \
c:/Octave/Octave-4.2.1/lib/octave/4.2.1/liboctinterp.dll.a
DEPENDPATH += c:/Octave/Octave-4.2.1/bin
}
...
は.cpp
ファイル(例はdocsから取られている)である:ここでは
は.pro
ファイルですエラー:
undefined reference to feval(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, octave_value_list const&, int)
私もコンパイラからのエラー以下:
undefined reference to Array<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::nil_rep()
undefined reference to Array<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::resize_fill_value() const
undefined reference to Array<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::resize_fill_value() const
が、私はCtrl + Array
またはfeval
をクリックして - のQt Creatorは適切なファイルを開きます。
私はまた、オクターブGUIから次のコマンドを使用して、ファイル++ cの例をコンパイルすることができます。
mkoctfile --link-stand-alone embedded.cc -o embedded
私は何ライブラリ/パスを追加する必要がありますか?
ありがとうございます。
Octaveヘルプメーリングリストのクロスポスト:http://octave.1599824.n4.nabble.com/QT-undefined-reference-to-feval-td4683465.html – Andy