gpt4 book ai didi

c - 使用GTK+2编译C代码调用octave函数时出现错误

转载 作者:行者123 更新时间:2023-11-30 17:41:18 29 4
gpt4 key购买 nike

我正在尝试从 C 代码调用 Octave 函数,但问题是为什么在 Octave 中运行此命令时会发生mkoctfile --mexaddition_GUI.c 错误addition_GUI.c:1 :20: fatal error : gtk/gtk.h: 没有这样的文件或目录编译终止。我可以从 C 代码调用 Octave 函数,但是当我尝试从使用 GTK+2 的代码调用时,会发生错误。

#include<gtk/gtk.h>
#include "mex.h"

void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
mxArray *in[2], *out[1];

in[0] = mxCreateDoubleScalar(1);
in[1] = mxCreateDoubleScalar(2);

mexCallMATLAB(1, out, 2, in, "addition");
mexCallMATLAB(0, NULL, 1, out, "disp");

mxDestroyArray(in[0]);
mxDestroyArray(in[1]);
mxDestroyArray(out[0]);
}
void static call(GtkWidget *widget,gpointer data)
{
g_print("\n%s\n",gtk_entry_get_text(GTK_ENTRY(data)));
gint a=3;
gint b=2;
gint x;
x=a+b;
char y[4];
sprintf(y, "%d", x);
gtk_entry_set_text(GTK_ENTRY(data),y);
}

int main(int agrc, char *agrv[])

{
gtk_init(&agrc,&agrv);
GtkWidget *entry,*window,*button,*hbox;

window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
g_signal_connect(window,"delete-event",G_CALLBACK(gtk_main_quit),NULL);

hbox=gtk_hbox_new(0,0);
gtk_container_add(GTK_CONTAINER(window),hbox);
button=gtk_button_new_with_mnemonic("ADD");
entry=gtk_entry_new();
const char* sum="3+2";
gtk_entry_set_text(GTK_ENTRY(entry),sum);
g_signal_connect(button,"clicked",G_CALLBACK(call),entry);
g_signal_connect(entry,"activate",G_CALLBACK(call),entry);



gtk_box_pack_start(GTK_BOX(hbox),button,0,0,0);

gtk_box_pack_start(GTK_BOX(hbox),entry,0,0,0);

gtk_widget_show_all(window);
gtk_main();
return 0;

}

最佳答案

您需要以某种方式指定要再次链接的包含目录和库 - (pkg-config --libs --cflags gtk+-2.0 返回的目录和库)。

关于c - 使用GTK+2编译C代码调用octave函数时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21170501/

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