옥타브 스크립트를 Qt GUI 응용 프로그램에서 실행하고 싶습니다. (예 docs에서 가져온 것입니다) 여기QT의 옥타브 : 정의되지 않은 참조
...
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
파일 : 여기
.pro
파일입니다
나는 다음과 같은 한 Qt는 창조주로부터 C++ 코드를 컴파일하려고
#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);
}
오류 :
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는 창조주는 해당 파일을 엽니 다 : 컴파일러에서 오류를 다음과 같습니다.
나는 또한 옥타브 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