Tôi muốn tính toán một số thuật toán ma trận bằng cách sử dụng thư viện GNU Octave. Tôi biết tôi có thể sử dụng API C/C++ của Octave để sử dụng cơ bản. Tuy nhiên, phương pháp tôi muốn sử dụng không nằm trong gói mặc định của Octave. Vậy làm thế nào để sử dụng control package của Octave trong chương trình C/C++?Làm thế nào để nhúng GNU Octave vào chương trình C/C++?
Trả lời
Something như thế này
embed.cpp
#include <iostream>
#include <octave/octave.h>
int main(int argc,char* argv)
{
int embedded;
octave_main(argc,argv,embedded=0);
return embedded;
}
Sau đó
mkoctfile embed.cpp --link-stand-alone -o embed
để tạo ra một thực thi độc lập.
Để gọi hàm octave cho dù chúng được cung cấp bởi tập lệnh hay mô-đun octaveforge, bạn có thể sử dụng feval, lấy tên hàm octave làm chuỗi, octave_value_list của biến đầu vào cho hàm đó và số biến cho hàm đó số nguyên.
Xem here để biết thêm thông tin.
Thực phẩm cho tư tưởng cho bất kỳ ai đến đây: sử dụng octave nhúng có nghĩa là bạn phải phát hành mã của bạn theo GPL như giấy phép http://wiki.octave.org/FAQ#If_I_write_code_using_Octave_do_I_have_to_release_it_under_the_GPL.3F – waiting4op2deliver
Tôi thấy liên kết này hữu ích: How to use Octave Functions in C/C++
Tôi mới để sử dụng Octave trong C++. Bạn có thể vui lòng chỉ cho tôi cách sử dụng API C/C++ của Octave để nhận ra nó. Cảm ơn nhiều! – Timothy