C 语言中的基本 MathGL 示例无法编译

Basic MathGL example in c does not compile

提问人:m4r35n357 提问时间:10/22/2020 更新时间:10/23/2020 访问量:251

问:

以下是文档中的基本 c 示例:

#include <mgl2/mgl_cf.h>
int sample(HMGL gr, void *)
{
  mgl_rotate(gr,60,40,0);
  mgl_box(gr);
}
int main(int argc,char **argv)
{
  HMGL gr;
  gr = mgl_create_graph_qt(sample,"MathGL examples",0,0);
  return mgl_qt_run();
/* generally I should call mgl_delete_graph() here,
 * but I omit it in main() function. */
}

这是编译输出的开始:

$ gcc test.c -lmgl-qt5 -lmgl
In file included from /usr/include/mgl2/mgl_cf.h:29,
                 from test.c:1:
/usr/include/mgl2/data_cf.h:527:17: error: expected ‘,’ or ‘;’ before ‘mgl_find_roots’
  527 | bool MGL_EXPORT mgl_find_roots(size_t n, void (*func)(const mreal *x, mreal *f, void *par), mreal *x0, void *par);
      |                 ^~~~~~~~~~~~~~
test.c: In function ‘sample’:
test.c:2:21: error: parameter name omitted
    2 | int sample(HMGL gr, void *)
      |                     ^~~~~~

在我看来,很明显,这个例子甚至不是有效的 c,缺少一个参数(实际上没有使用)到 sample() 函数。我尝试删除它,但仍然得到第一个(内部数学)错误。

任何想法如何进行?

c 数学

评论

0赞 G. Sliepen 10/22/2020
看来你不见了.#include <mgl2/mgl.h>
0赞 m4r35n357 10/22/2020
@G.Sliepen,我想你的意思是文档不见了...... ;)没关系,我仍然遇到相同的编译器错误(你试过了吗?顺便说一句,从那以后我一直在寻找,还没有看到另一个像这样的例子可以学习。

答:

1赞 G. Sliepen 10/23/2020 #1

MathGL 似乎没有按顺序排列内部语句,并且要求您注意您和以什么顺序排列。特别是,请确保在任何其他 MathGL 标头之前,并在该标头之前确保 .此外,当您使用例如与 Qt 相关的函数时,请确保您 .这应该有效:#include#include#include <mgl2/mgl.h>#include <stdbool.h>#include <mgl2/qt.h>

#include <stdbool.h>
#include <mgl2/mgl.h>
#include <mgl2/qt.h>

int sample(HMGL gr, void *ignored)
{
  mgl_rotate(gr,60,40,0);
  mgl_box(gr);
}

int main(int argc, char **argv)
{
  HMGL gr = mgl_create_graph_qt(sample, "MathGL examples", 0, 0);
  return mgl_qt_run();
}

评论

0赞 m4r35n357 10/23/2020
效果很好,谢谢!这显然比我想象的要多一些,但现在我有一点坚持下去的动力。
0赞 Aschoolar 2/21/2021
我也试过了,你的代码部分解决了我的问题。我能够创建您的解决方案代码的对象,但无法构建它。我收到了很多未定义的引用错误。与我的另一个简单正弦图示例相同。看起来包含这些头文件已损坏。
0赞 G. Sliepen 2/21/2021
@Aschoolar 您应该将您的问题作为新问题发布在本网站上。
0赞 Aschoolar 3/26/2021
@G.Sliepen,感谢您的评论。无论如何,我都想通了,但遇到了其他问题。我在那里发布了一个问题链接